Help Center/ EventGrid/ User Guide/ Event Subscriptions/ Creating an Event Subscription
Updated on 2025-08-07 GMT+08:00

Creating an Event Subscription

Event subscriptions bind event sources, channels, and targets, and route events of sources to targets based on specified rules.

Constraints

  • A subscription can be bound with up to five targets.
  • An event can be transmitted three times in an EG channel.

Prerequisites

  • (Optional) You have created an event source.
  • You have set an event target.
  • You have created an enterprise project. For details, see IAM Projects and Enterprise Projects.
    • Enterprise Project is not displayed for non-enterprise users and enterprise projects with only the default value.
    • If you have multiple enterprise projects, default is selected by default.

Procedure

  1. Log in to the EG console.
  2. In the navigation pane, choose Event Subscriptions.
  3. Click Create Event Subscription.
  4. Click next to the default subscription name.
  5. Enter a new subscription name and description, and click OK.
  6. For enterprise users, select an enterprise project. You can click View Enterprise Projects to view the enterprise project list.
  7. Configure an event source.

    1. Click Event Source, as shown in Figure 1.
      Figure 1 Configuring an event source
    2. Select an event source provider.
      • Cloud services: cloud service event source.
      • Custom: custom event source
    3. Set event source parameters.
      When selecting Cloud services, set the parameters listed in Table 1.
      Table 1 Cloud service event source parameters

      Parameter

      Description

      Event Source

      Select a cloud service event source.

      Event Type

      (Optional) Select a predefined event type.

      Filter Rule

      Enter an event filter rule.

      Only events that match these filter rules will be routed to the associated targets. For more information about filter rules, see Filter Rule Parameters and Example Filter Rules.

      Figure 2 Configuring a cloud service event source

      If Event Source is set to OBS Application Service, refer to Table 2. In addition, you need to add the Tenant Administrator permission to your Huawei Cloud account. For details, see Assigning Dependency Roles.

      Table 2 OBS application event source parameters

      Parameter

      Description

      Source

      Select an event source.

      Bucket

      Select an OBS bucket.

      Event Type

      Select event types to filter.

      Object Name Prefix

      Enter an object name prefix.

      Object Name Suffix

      Enter an object name suffix.

      Object Name Encoding

      Whether to encode object names of OBS events.

      Filter Rule

      Enter an event filter rule.

      Only events that match these filter rules will be routed to the associated targets. For more information about filter rules, see Filter Rule Parameters and Example Filter Rules.

      When selecting Custom, set the parameters listed in Table 3.

      Table 3 Custom event source parameters

      Parameter

      Description

      Channel

      Select an existing custom event channel, for example, channel.

      Event Source

      Enter or select a custom event source that has been associated with the selected custom event channel.

      Filter Rule

      Enter an event filter rule.

      Only events that match these filter rules will be routed to the associated targets. For more information about filter rules, see Filter Rule Parameters and Example Filter Rules.

      Figure 3 Configuring a custom event source
    4. Click OK.

  8. Configure an event target.

    1. Click Event Target, as shown in Figure 4.
      Figure 4 Configuring an event target
    2. Select an event target provider.
      • Cloud services: cloud service event target.
      • Custom: custom event target
    3. Set event target parameters.
      When selecting Cloud services, set the following parameters.
      • Event Target: Select an event target.

        If you set Event Target to FunctionGraph (function computing):

        • Function: Select the function to trigger. If no function is available, create a function first.
        • Version/Alias: Choose to specify a version or alias.
        • Version: Select a version of the function. By default, latest is selected.
        • Alias: Select an alias of the function.
        • Execute: Select Asynchronously or Synchronously.

          Function invocation mode. Default: Asynchronously.

          Asynchronously: Immediate responses of function invocation are not required.

          Synchronously: Immediate responses of function invocation are required.

        • Agency: Select an agency. If no agency is available, click Create Agency to generate one named EG_TARGET_AGENCY.
          1. Only agencies with EG as the delegated cloud service are displayed.
          2. Select an agency with the permission functiongraph:function:invoke*.

        If you set Event Target to Distributed Message Service (DMS) for Kafka:

        • Connection: Select a DMS for Kafka connection.
        • Topic: Select a message topic.
        • Enable: Whether to enable the message key function.
        • Transform Type: Defines how message keys are used. There are two options:
          • Variables: Keys are variable values from CloudEvents-compliant events.
          • Constants: Keys are specified constants. All messages will be sent to the same partition.

          For more information about the transform types, see Event Content Transformation.

        If you set Event Target to Cloud service API:

        • Cloud Service: Select a cloud service.
        • API: Select a cloud service API and configure the API information.
        • Agency: Select the created agency.

        If you set Event Target to Simple Message Notification (SMN):

        • Topic: Select a message topic.
        • Agency: Select an agency. If no agency is available, click Create Agency to generate one named EG_SMN_PUBLISHER_AGENCY.
          • Only agencies with EG as the delegated cloud service are displayed.
          • Select an agency with the permission smn:topic:publish.
        • Message Subject: Configure the subject through constants or variables.
        • Type: Type of the message subject. Two types are available:
          • Constants: The subject does not change from specified. All messages will use the same subject.
          • Variables: The subject in the template is a variable value from CloudEvents-compliant events. Max.: 512 characters.

            The Subject parameter is optional.

        Rule:

      • Transform Type: EG transforms CloudEvents-compliant events for targets. The following three types are supported:
        • Pass-through: Directly route CloudEvents-compliant events to the target.
        • Variables: Route variables in CloudEvents-compliant events to the target.
        • Constants: Route constants in events to the target.

        For more information about the transform types, see Event Content Transformation.

      Figure 5 Configuring a cloud service event target
      When selecting Custom, set the following parameters.
      • URL: Enter the URL of the event target starting with http:// or https:// and using the POST method.

        The default timeout for pushing events to custom targets is 9 seconds. Exceeding this limit will cause delivery failure.

        HTTP has high security risks, which may cause data eavesdropping or tampering. For data security, you are advised to use HTTPS. If you must use HTTP, ensure that the custom event does not contain any sensitive information. You are responsible for all related risks.
        Table 4 Event body parameters

        Parameter

        Required

        Type

        Description

        datacontenttype

        No

        String

        Data content type

        data

        Yes

        Array of Data objects

        Data

        subject

        No

        String

        Subject

        specversion

        No

        String

        Specification version

        id

        Yes

        String

        Id

        source

        Yes

        String

        Event source

        time

        Yes

        String

        Time

        type

        Yes

        String

        Event type

        ttl

        Yes

        String

        Timeout

        dataschema

        No

        String

        Data schema

        The following is an example of the event body (OBS Application Service as the event source):
        "datacontenttype":"application/json",
        "data":
        {
          "obs":{
                    "bucket":{
                                    "bucket":"bucket-input-my",
                                    "name":"bucket-input-my",
                                    "arn":"",
                                    "ownerIdentity":{"ID":"f9e40463cxxxxxxxx9efd3a7ec854e"}
                                  },
                    "Version":"1.0",
                    "configurationId":"a6b0bcf8-8874-4d8b-84f5-f9068527930f",
                    "object":{
                                    "versionId":"G00101928EE6072DFFFFD28824BB4AB8null",
                                    "oldpsxpth":"",
                                  "size":10,
                                    "eTag":"c9b20f7d442e65ede148e006dfe1308c",
                                    "key":"\xe4\xba\x8b\xe4\xbb\xxx\xxx\xxx\xxx\xxx\xxx\x85\xe6\xb5\x8b\xe8\xaf\x951015-2.txt",
                                    "sequencer":"1"
                                  }
                    },
          "eventVersion":"3.0",
          "responseElements":{
                                    "x-obs-id-2":"",
                                    "x-obs-request-id":"3f905af2683e6ed7dbaec881b66390ab",
                                    "x-amz-request-id":"",
                                    "x-amz-id-2":""
                                  },
          "eventSource":"OBS",
          "eventTime":"2024-10-15T14:38:12.781Z",
          "requestParameters":{
                                    "sourceIPAddress":"xx.xx.xx.xx"
                                  },
          "eventName":"ObjectCreated:Put",
          "eventRegion":"cn-north-4",
          "userIdentity":{
                                "ID":"f9e40463c23xxxxxxxxefd3a7ec854e"
                              }
        },
        "subject":"\xe4\xba\x8b\xe4\xbb\xxx\xxx\xxx\xxx\xxx\xxx\xxx\xe6\xb5\x8b\xe8\xaf\x951015-2.txt",
        "specversion":"1.0",
        "id":"3f905af2683e6ed7dbaec881b66390ab",
        "source":"HC.OBS.DWR",
        "time":"2024-10-15T06:38:13.52240464Z",
        "type":"OBS:DWR:ObjectCreated:PUT",
        "ttl":"4000","dataschema":""
      • Connection: Select a custom or the default connection. For details, see Connections.
      • Headers Parameters
        • Enter a request header.
        • Enter a value.
        • Specify whether to encrypt the header.
          Figure 6 Header parameters
          • For custom HTTPS events, add authorization configurations for the event target to improve security.
          • If the request header and value are invalid, the encryption option is unavailable.
          • Key: Max. 256 characters starting and ending with a letter. Only letters and hyphen (-) are allowed.
          • Value: Max. 1024 characters, including letters, hyphens (-), underscores (_), spaces, and special characters (~!@#$%^&*()=+|[{}];:'",<.>/?).
      • Transform Type: EG transforms CloudEvents-compliant events for targets. The following three types are supported:
        • Pass-through: Directly route CloudEvents-compliant events to the target.
        • Variables: Route variables in CloudEvents-compliant events to the target.
        • Constants: Route constants in events to the target.

        For more information about the transform types, see Event Content Transformation.

      • Status: The dead letter queue is disabled by default. If enabled, EG sends failed events to the specified queue. If disabled, such events will be discarded. For details, see Dead Letter Queue.
      Figure 7 Configuring a custom event target
    4. Click OK.

  9. Click Save.

    The subscription is enabled by default once created.