Azure Event Grid Plugin

The plugin provides functionality to interact with Event Grid

Installation

Example 1. build.gradle
implementation(group: 'org.vividus', name: 'vividus-plugin-azure-event-grid', version: '0.5.0')

Interaction with topics

Topics configuration

Topics are configured with a set of properties with the following format:

azure.event-grid.{topic-name}.{property-name}=property value

Where:

  1. topic-name - The name of the topic which will be used as a step parameter

  2. property-name - The name of the topic property. One of:

    1. key - The topic access key

    2. event-schema - The kind of schema (GRID, CLOUD or CUSTOM)

    3. endpoint - The topic endpoint

Steps

Publish event

Publishes an event to a topic

When I send event to `$topicName` topic with payload:$payload
  • $topicName - The name of the topic, will be used to find required properties values

  • $payload - The JSON payload to send to a topic

Example 2. Send an event
When I send event to `create-user` topic with payload:
{
  "id": "1807",
  "eventType": "RegisterVehicle",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2017-08-10T21:03:07+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0"
}

Topic management

Configuration

Authentication

The authentication process relies on the configuration of the environment variables.

See the official "Azure identity" guide to get more details on what types of authentication could be used.

Azure environment selection

Azure environment could be optionally specified using the property azure.environment (sets the environment for all Azure plugins). The default value is AZURE.

The supported environments are only:

  • AZURE

  • AZURE_CHINA

  • AZURE_GERMANY

  • AZURE_US_GOVERNMENT

Azure subscription selection

Azure subscription must be configured via AZURE_SUBSCRIPTION_ID environment variable.

Steps

Collect system topics info

The step is deprecated and will be removed in VIVIDUS 0.6.0. The replacement is the generic step retrieving information about Azure resources. The replacement pattern is:

When I get Azure resource with identifier `resourceGroups/<resourceGroupName>/providers/Microsoft.EventGrid/systemTopics` using API version `2021-12-01` and save it to <scopes> variable `<variableName>`

Collects system topics info in the specified resource group and saves it as JSON to a variable. For more information, see the Azure Docs.

When I collect system topics in resource group `$resourceGroupName` and save them as JSON to $scopes variable `$variableName`

The client should have permission to run action Microsoft.EventGrid/systemTopics/read over scope /subscriptions/{subscription ID}/resourceGroups/{resource group name}/providers/Microsoft.EventGrid.

Example 3. Collect system topics info
When I collect system topics in resource group `TEST-SA` and save them as JSON to scenario variable `system-topics`