An open API service indexing awesome lists of open source software.

https://github.com/anthonychu/event-grid-local

Utlity for relaying Azure Event Grid events to local webhooks via Azure Storage queues.
https://github.com/anthonychu/event-grid-local

Last synced: about 1 year ago
JSON representation

Utlity for relaying Azure Event Grid events to local webhooks via Azure Storage queues.

Awesome Lists containing this project

README

          

# Azure Event Grid Local Debugger

Utlity for relaying Azure Event Grid events to local webhooks via Azure Storage queues. This is an alternative to using an ngrok proxy to test local Event Grid webhooks.

- Automatically manages Storage queues and Event Grid subscriptions
- Relays Event Grid events via queues and invokes local webhooks
- Event replays - re-send any event to local webhook
- Generate cURL command for any received event for running on command line or in Postman

![Screenshot1](media/screenshot1.png)

![Screenshot2](media/screenshot2.png)

## Quickstart

1. Install the package globally.

```bash
npm install -g @anthonychu/event-grid-local
```

1. Create a config file named `event-grid-local.yml`:

```yaml
eventSubscriptions:
images_blob_created:
topic: /subscriptions//resourceGroups//providers/microsoft.storage/storageaccounts/ # resource id of Event Grid topic to subscribe to
functionName: processImages # name of Azure Function to invoke locally when event is received
filter:
includedEventTypes:
- Microsoft.Storage.BlobCreated
subjectBeginsWith: /blobServices/default/containers/images/blobs/
pdfs_blob_created:
topic: /subscriptions//resourceGroups//providers/microsoft.storage/storageaccounts/
webhookUrl: http://localhost:8080/mynodeapp/events # can specify a URL instead of a function name
filter:
includedEventTypes:
- Microsoft.Storage.BlobCreated
subjectBeginsWith: /blobServices/default/containers/files/blobs/
```

1. Ensure the Azure CLI is installed and you have logged in.

```bash
az login
```

1. Create a Storage account to use for relaying events from Event Grid in Azure to your local webhook URLs. **This Storage account must be in the same subscription as your Event Grid topics.** You can use the Azure CLI or portal to create the account. You can also use an existing Storage account.

1. Set an environment variable named `EVENT_GRID_STORAGE_CONNECTION` to the Storage account connection string.

```bash
export EVENT_GRID_STORAGE_CONNECTION="DefaultEndpointsProtocol=https;AccountName=;AccountKey=;EndpointSuffix=core.windows.net"
```

1. Create Storage queues and Event Grid subscriptions based on configuration in `event-grid-local.yml`:

```bash
event-grid-local subscribe
```

You only need to run this command again when you change the configuration.

1. Start listening to Event Grid events:

```bash
event-grid-local start
```

The configured webhooks will be invoked whenever events are received from Event Grid via the queues.

1. To monitor incoming events and re-send (replay) commands, open the dashboard in the browser.

http://localhost:8081/

---

This community project is not officially supported by Microsoft.