如何创建可连接Blob Storage的Azure API以提交Blob容器内容?
实现Python Azure Function 对接Blob Storage的POST提交API
前置依赖配置
首先在你的函数项目requirements.txt文件中添加所需依赖:
azure-functions # 如果你用手动SDK调用方案才需要添加下方依赖 # azure-storage-blob
方案1:使用内置Blob输出绑定(推荐,无需手动调用SDK)
配置绑定规则
找到函数目录下的function.json文件,在bindings数组中追加如下配置:
{ "name": "outputBlob", "type": "blob", "path": "替换为你的Blob容器名/{rand-guid}", "connection": "AzureWebJobsStorage", "direction": "out" }
配置说明:
path参数里的{rand-guid}是系统自动生成的随机文件名,你也可以自定义规则,比如要从请求参数取文件名可以写为{filename}connection对应的是存储账户连接字符串的配置名,默认AzureWebJobsStorage是Function App默认绑定的存储账户,如需使用其他存储账户,在Function App的配置页添加对应连接字符串的环境变量即可
修改函数代码
基于你现有的默认HTTP触发代码修改如下:
import azure.functions as func import logging def main(req: func.HttpRequest, outputBlob: func.Out[str]) -> func.HttpResponse: logging.info('Python HTTP trigger function processed a request.') try: # 读取POST请求体内容作为要写入Blob的内容 post_content = req.get_body().decode('utf-8') except: return func.HttpResponse( "请求内容解码失败,请检查传入格式", status_code=400 ) # 写入Blob存储 outputBlob.set(post_content) return func.HttpResponse( "内容已成功提交到Blob容器", status_code=201 )
方案2:手动调用Blob SDK(适合需要灵活控制Blob操作的场景)
如果需要自定义元数据、判断容器是否存在等复杂操作,可以直接调用Blob存储SDK实现:
import azure.functions as func import logging from azure.storage.blob import BlobServiceClient import os import uuid def main(req: func.HttpRequest) -> func.HttpResponse: logging.info('Python HTTP trigger function processed a request.') # 从环境变量读取存储账户连接字符串 storage_conn_str = os.getenv("AzureWebJobsStorage") container_name = "替换为你的Blob容器名" # 初始化Blob客户端 blob_service_client = BlobServiceClient.from_connection_string(storage_conn_str) container_client = blob_service_client.get_container_client(container_name) # 读取请求内容 post_content = req.get_body() # 生成随机文件名 blob_name = f"{uuid.uuid4().hex}.txt" # 上传内容到Blob container_client.upload_blob(name=blob_name, data=post_content, overwrite=True) return func.HttpResponse(f"文件{blob_name}已成功上传", status_code=201)
注意事项
- 部署到Azure前需确保Function App的配置中存储连接字符串配置正确
- 目标Blob容器需要提前在存储账户中创建,或给Function App授予存储账户的容器创建权限
内容的提问来源于stack exchange,提问作者noobdev123
相关产品推荐
相关产品推荐

