2

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?

Robert Kokuti
  • 239
  • 3
  • 10

3 Answers3

8

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

Roman Kiss
  • 7,925
  • 1
  • 8
  • 21
  • 1
    Thanks, works. Note that this works when activating with the 'When resource event occurs' action. My initial question used the 'When HTTP request is received' which also required creating an event subscription manually. In this case, the received data is an array so the expression would be uriPath(triggerBody()[0]?['data'].url). I like that the given solution creates the subscription automatically and accessing the required data is more straightforward – Robert Kokuti Dec 10 '18 at 12:09
0

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}
dbarkol
  • 291
  • 2
  • 7
0

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.

Bahram Banisadr
  • 312
  • 1
  • 7