1
votes

My logic app receives a blob event when a blob is created via http:

Logic Apps Designer

I use an Event Grid Subscription, which triggers the Logic App via webhook, when a Blob Created event occurs.

A typical blob event received by the http trigger looks like:

[
  {
    "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"
  }
]

How can I use this event data to specify the blob content, using the Designer's Get blob content action?

3

3 Answers

7
votes

In addition to @dbarkol answer, the following screen snippet shows using the Get blob content using path where an Expression is:

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

enter image description here

0
votes

One way of doing this would be by the path:

  1. Extract the container name from the subject
  2. Extract the file name from the subject
  3. Use the 'Get blob content using path' action. Your blob path will be /{container-name}/{file-name}
0
votes

Generically, you can also set up a Shared Access Signature for your storage account and then access the blob via . This is not Logtic Apps specific but should work for any GET call.

An example of this usage in Logic Apps with Event Grid and Storage is available in this sample.