Azure Logic应用-从Blob事件获取Blob内容

时间:2018-12-07 15:55:02

标签: azure-logic-apps azure-eventgrid

通过http:创建斑点时,我的逻辑应用程序会收到斑点事件。

Logic Apps Designer

我使用事件网格订阅,当Blob创建事件发生时,该订阅通过Webhook触发Logic App。

http触发器收到的典型blob事件如下:

[
  {
    "topic": "/subscriptions/xxxxxxx/resourceGroups/a-resource-group/providers/Microsoft.Storage/storageAccounts/ablobstorageaccount",
    "subject": "/blobServices/default/containers/testcontainer/blobs/9de2125e-5279-4375-bc60-c9987eb99251",
    "eventType": "Microsoft.Storage.BlobCreated",
    "eventTime": "2018-12-07T12:42:53.6561593Z",
    "id": "3c8f8611-001e-0029-722a-8eb18106aef2",
    "data": {
      "api": "PutBlob",
      "clientRequestId": "799b46aa-ff9f-4561-a087-36f790ab0df5",
      "requestId": "3c8f8611-001e-0029-722a-8eb181000000",
      "eTag": "0x8D65C41819B23B9",
      "contentType": "text/plain",
      "contentLength": 22,
      "blobType": "BlockBlob",
      "url": "https://ablobstorageaccount.blob.core.windows.net/testcontainer/9de2125e-5279-4375-bc60-c9987eb99251",
      "sequencer": "00000000000000000000000000003D5300000000018067c3",
      "storageDiagnostics": {
        "batchId": "be84f175-da20-4a44-8a8c-5d33a92fbcd3"
      }
    },
    "dataVersion": "",
    "metadataVersion": "1"
  }
]

如何通过设计器的获取blob内容操作使用此事件数据指定blob内容?

3 个答案:

答案 0 :(得分:3)

除了@dbarkol答案外,以下屏幕截图还显示了使用路径获取blob内容,其中表达式为:

uriPath(triggerBody()?['data'].url)

enter image description here

答案 1 :(得分:0)

一种实现方式是通过路径:

  1. 从主题中提取容器名称
  2. 从主题中提取文件名
  3. 使用“使用路径获取blob内容”操作。您的Blob路径将为/ {container-name} / {file-name}

答案 2 :(得分:0)

通常,您还可以设置Shared Access Signature for your storage account,然后通过来访问Blob。这不是Logtic Apps专用的,但适用于任何GET调用。

sample中提供了带有事件网格和存储的Logic Apps中的用法示例。