通过ADF触发Azure Blob函数遇错,请求说明请求体格式
Azure Blob Trigger 函数的正确请求体格式(ADF触发场景)
当通过ADF的Web活动触发Azure Blob Trigger类型的函数时,请求体必须严格遵循Azure存储事件的格式结构,否则会触发参数验证错误。以下是详细的格式说明和示例:
核心字段说明
topic: 存储账户的资源ID,格式为/subscriptions/{订阅ID}/resourceGroups/{资源组名}/providers/Microsoft.Storage/storageAccounts/{存储账户名}subject: 触发事件的Blob路径,格式为/blobServices/default/containers/{容器名}/blobs/{Blob文件名}eventType: 固定值,Blob创建事件用Microsoft.Storage.BlobCreated,删除事件用Microsoft.Storage.BlobDeletedid: 事件唯一标识,可生成任意UUID字符串data: Blob元数据对象,包含以下必填/可选子字段:api: 触发事件的API操作(如PutBlob、CopyBlob)contentType: Blob的内容类型(如application/json、text/csv)contentLength: Blob大小(字节数,整数类型)blobType: Blob类型,固定为BlockBlob或PageBloburl: Blob的完整访问URL- 其他字段(
clientRequestId、requestId、eTag、sequencer)为可选,可按需填充
dataVersion: 固定值2.0metadataVersion: 固定值1eventTime: 事件发生时间,需符合ISO 8601格式(如2024-05-20T14:23:15Z)
完整请求体示例
{ "topic": "/subscriptions/12345678-1234-1234-1234-1234567890AB/resourceGroups/my-data-rg/providers/Microsoft.Storage/storageAccounts/mydatastorage", "subject": "/blobServices/default/containers/raw-data/blobs/sales-20240520.csv", "eventType": "Microsoft.Storage.BlobCreated", "id": "98765432-4321-4321-4321-BA0987654321", "data": { "api": "PutBlob", "contentType": "text/csv", "contentLength": 20480, "blobType": "BlockBlob", "url": "https://mydatastorage.blob.core.windows.net/raw-data/sales-20240520.csv", "eTag": "\"0x8DC4E8A2F1D6789\"", "sequencer": "0000000000000000000000000000ABCDEF12345" }, "dataVersion": "2.0", "metadataVersion": "1", "eventTime": "2024-05-20T14:23:15Z" }
ADF配置要点
- 在ADF Web活动中选择
POST方法,将上述JSON作为请求体内容 - 若函数启用密钥验证,需在Web活动的Headers中添加
x-functions-key字段,值为函数的访问密钥 - 确保目标函数已正确配置Blob Trigger,关联的存储账户、容器与请求体中的信息一致
内容的提问来源于stack exchange,提问作者Ramesh Madhubhashitha
相关产品推荐
相关产品推荐

