You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure新手求助:如何在Azure中编写运行Python脚本连接Blob存储

嘿,Azure新手看过来!搞定Blob存储Python脚本的全指南

首先得夸夸你——能一步步创建App Service、Blob存储还完成关联,已经超棒啦!下面我就帮你理清在哪里写脚本、怎么配环境、怎么写操作Blob的代码,还有怎么运行测试~

一、到底在哪里编写Python脚本?

你说在Azure控制台没找到写脚本的地方?其实有几个超方便的途径:

  • App Service高级工具(Kudu):这是最常用的工具!进入你的App Service,左侧菜单找「开发工具」→「高级工具」,点击「Go」进入Kudu界面。然后选「Debug console」→「CMD/PowerShell」,导航到site/wwwroot目录(这是App Service运行代码的根目录),你可以直接在这里创建.py文件(用echo. > script.py命令),或者用Kudu自带的编辑器点击文件名直接编辑,也能上传本地写好的脚本。
  • App Service内置编辑器(预览):在App Service左侧菜单「开发工具」里找「编辑器(预览)」,进去后就能像本地IDE一样在浏览器里直接创建、编辑Python文件,界面更友好,还带语法高亮!
  • 本地编写后部署:如果习惯用VS Code/PyCharm,本地写好脚本后,用VS Code的Azure插件或者Azure CLI命令az webapp up部署到App Service的wwwroot目录就行。

二、先搞定依赖环境!

要操作Blob存储,必须安装Azure的Blob SDK。你之前在控制台执行过pip,那可以这么做:

  1. 在Kudu或App Service编辑器的终端里,执行命令:
    python -m pip install azure-storage-blob
    
  2. 为了避免每次部署都手动装依赖,建议在wwwroot目录下创建requirements.txt文件,把依赖写进去:
    azure-storage-blob>=12.0.0
    
    这样App Service在部署的时候会自动读取这个文件安装所有依赖。

三、上手写Blob操作脚本(附示例)

因为你已经把Blob存储和App Service关联了,连接字符串会自动加到App Service的「应用程序设置」里(名字一般是AZURE_STORAGE_CONNECTION_STRING),所以脚本里直接读取环境变量就行,不用硬编码密钥!

这里给你一个简单的上传+读取Blob的示例脚本,保存成blob_operations.py:

import os
from azure.storage.blob import BlobServiceClient

# 从App Service应用设置中获取Blob存储连接字符串
connect_str = os.getenv("AZURE_STORAGE_CONNECTION_STRING")
if not connect_str:
    raise ValueError("请检查App Service的应用设置中是否已添加Blob存储连接字符串!")

# 初始化Blob服务客户端
blob_service_client = BlobServiceClient.from_connection_string(connect_str)

# 替换成你自己创建的容器名称
CONTAINER_NAME = "your-container-name"

def upload_local_file_to_blob(local_file_path, blob_name):
    """把本地文件上传到Blob存储"""
    blob_client = blob_service_client.get_blob_client(container=CONTAINER_NAME, blob=blob_name)
    # 打开本地文件并上传,overwrite=True表示如果Blob已存在就覆盖
    with open(local_file_path, "rb") as file_data:
        blob_client.upload_blob(file_data, overwrite=True)
    print(f"✅ 文件 {local_file_path} 成功上传为Blob:{blob_name}")

def read_blob_content(blob_name):
    """读取Blob的内容并返回"""
    blob_client = blob_service_client.get_blob_client(container=CONTAINER_NAME, blob=blob_name)
    # 下载Blob内容并转为字符串(如果是二进制文件就不用decode)
    content = blob_client.download_blob().readall().decode("utf-8")
    print(f"✅ 成功读取Blob:{blob_name}")
    return content

# 测试代码(可以根据自己的需求修改)
if __name__ == "__main__":
    # 示例:上传wwwroot目录下的test.txt文件到Blob,命名为uploaded_test.txt
    upload_local_file_to_blob("test.txt", "uploaded_test.txt")
    # 示例:读取刚才上传的Blob内容并打印
    blob_content = read_blob_content("uploaded_test.txt")
    print("\nBlob内容:")
    print(blob_content)

注意:记得把CONTAINER_NAME替换成你自己创建的Blob容器名称哦!

四、运行和测试脚本的方法

  1. 在Kudu控制台运行:进入Kudu的Debug Console,导航到wwwroot目录(脚本所在的地方),执行命令:
    python blob_operations.py
    
    控制台会直接输出运行结果,能看到上传、读取是否成功。
  2. 在App Service编辑器运行:打开编辑器后,点击顶部的「终端」按钮,打开终端窗口,同样导航到脚本目录,执行上面的命令就行。
  3. 检查Blob存储验证结果:运行脚本后,去你的Blob存储容器里看看,是不是多了uploaded_test.txt,打开也能看到内容和本地的一致~

最后几个小提醒

  • 确认App Service的Python版本:你设置了Python 3.4,但这个版本已经不再维护了,建议升级到3.8及以上版本(在App Service的「配置」→「常规设置」里修改),避免遇到兼容性问题。
  • 检查应用设置:如果脚本报错找不到连接字符串,去App Service的「配置」→「应用程序设置」里看看,有没有AZURE_STORAGE_CONNECTION_STRING,如果没有,手动添加(从Blob存储账户的「访问密钥」里复制连接字符串)。

内容的提问来源于stack exchange,提问作者jane1912

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:51:19