创建 AmazonEventBridge纲要 - Amazon EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建 AmazonEventBridge纲要

您可以通过使用 JSON 文件来创建架构OpenAPI 规范或者jsonSchema Draft4 规范. 您可以在中创建或上传自己的架构EventBridge通过使用模板或基于 JSON 生成模式事件. 你也可以从上面的事件推断模式事件总线. 使用创建架构EventBridge架构注册表 API,使用CreateSchemaAPI 操作。

当你在 OpenAPI 3 和 jsonSchemDraft4 格式之间进行选择时,请考虑以下差异:

  • jsonSchema 格式支持 OpenAPI 中不支持的其他关键字,例如$schema, additionalItems.

  • 处理关键词的方式存在细微差异,例如typeformat.

  • OpenAPI 不支持 JSON 文档中的 jsonSchema 超架构超链接。

  • OpenAPI 的工具往往侧重于构建时间,而 JsonSchema 的工具往往侧重于运行时操作,例如用于模式验证的客户端工具。

我们建议使用 jsonSchema 格式来实现客户端验证,以便将事件发送到EventBridge符合架构。您可以使用 jsonSchema 为有效的 JSON 文档定义合同,然后使用JSON 架构验证程序在发送关联的事件之前。

有了新的架构后,你可以下载代码绑定以帮助为具有该模式的事件创建应用程序。

使用模板创建架构

您可以通过模板创建架构,也可以直接在EventBridge控制台。要获取模板,请从控制台中下载该模板。您可以编辑模板,使架构与您的事件匹配。然后通过控制台上传新模板。

主题

    要下载架构模板

    1. 打开 AmazonEventBridge控制台https://console.aws.amazon.com/events/.

    2. 在导航窗格中,选择 Schema registry (架构注册表)

    3. 入门在部分架构模板,选择下载.

    或者,您可以从以下代码示例复制 JSON 模板。

    { "openapi": "3.0.0", "info": { "version": "1.0.0", "title": "Event" }, "paths": {}, "components": { "schemas": { "Event": { "type": "object", "properties": { "ordinal": { "type": "number", "format": "int64" }, "name": { "type": "string" }, "price": { "type": "number", "format": "double" }, "address": { "type": "string" }, "comments": { "type": "array", "items": { "type": "string" } }, "created_at": { "type": "string", "format": "date-time" } } } } } }

    上传架构模板

    1. 打开 AmazonEventBridge控制台https://console.aws.amazon.com/events/.

    2. 在导航窗格中,选择Schemas然后选择创建架构.

    3. (可选)选择或创建架构注册表。

    4. 详细架构对于,输入架构的名称。

    5. (可选)输入架构的描述。

    6. 适用于类型架构,选择其中一个OpenAPI 3.0要么JSON 架构草案 4.

    7. 在存储库的Create选项卡中的文本框中,将架构文件拖动到文本框中,或粘贴架构源。

    8. 选择 Create (创建)

    直接在控制台中编辑架构模板

    在控制台中编辑架构

    1. 打开 AmazonEventBridge控制台https://console.aws.amazon.com/events/.

    2. 在导航窗格中,选择Schemas然后选择创建架构.

    3. (可选)选择或创建架构注册表。

    4. 详细架构对于,输入架构的名称。

    5. 适用于类型架构,选择其中一个OpenAPI 3.0要么JSON 架构草案 4.

    6. (可选)输入要创建的架构的描述。

    7. 在存储库的Create选项卡上,选择加载模板.

    8. 在文本框中,编辑模板,使架构与您的架构匹配事件.

    9. 选择 Create (创建)

    根据事件的 JSON 创建架构

    如果您拥有事件的 JSON,则可以自动为该类事件创建架构。

    基于事件的 JSON 创建架构

    1. 打开 AmazonEventBridge控制台https://console.aws.amazon.com/events/.

    2. 在导航窗格中,选择Schemas然后选择创建架构.

    3. (可选)选择或创建架构注册表。

    4. Schema details (架构详细信息) 下,输入架构的名称。

    5. (可选)输入对您创建的架构的描述。

    6. 适用于类型架构,选择OpenAPI 3.0.

      当您从事件的 JSON 创建架构时,不能使用 jsonSchema。

    7. 选择 Discover from JSON (从 JSON 中发现)

    8. JSON 下的文本框中,粘贴或拖动事件的 JSON 源。

      例如,可以从中粘贴源Amazon Step Functions执行失败的事件。

      { "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "012345678912", "time": "2019-02-26T19:42:21Z", "region": "us-east-1", "resources": [ "arn:aws:states:us-east-1:012345678912:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-1:012345678912:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-1:012345678912:stateMachine:state-machine", "name": "execution-name", "status": "FAILED", "startDate": 1551225146847, "stopDate": 1551225151881, "input": "{}", "output": null } }
    9. 选择 Discover schema (发现架构)

    10. EventBridge为事件生成一个 OpenAPI 架构。例如,将为前面的 Step Functions 事件生成以下架构。

      { "openapi": "3.0.0", "info": { "version": "1.0.0", "title": "StepFunctionsExecutionStatusChange" }, "paths": {}, "components": { "schemas": { "AWSEvent": { "type": "object", "required": ["detail-type", "resources", "detail", "id", "source", "time", "region", "version", "account"], "x-amazon-events-detail-type": "Step Functions Execution Status Change", "x-amazon-events-source": "aws.states", "properties": { "detail": { "$ref": "#/components/schemas/StepFunctionsExecutionStatusChange" }, "account": { "type": "string" }, "detail-type": { "type": "string" }, "id": { "type": "string" }, "region": { "type": "string" }, "resources": { "type": "array", "items": { "type": "string" } }, "source": { "type": "string" }, "time": { "type": "string", "format": "date-time" }, "version": { "type": "string" } } }, "StepFunctionsExecutionStatusChange": { "type": "object", "required": ["output", "input", "executionArn", "name", "stateMachineArn", "startDate", "stopDate", "status"], "properties": { "executionArn": { "type": "string" }, "input": { "type": "string" }, "name": { "type": "string" }, "output": {}, "startDate": { "type": "integer", "format": "int64" }, "stateMachineArn": { "type": "string" }, "status": { "type": "string" }, "stopDate": { "type": "integer", "format": "int64" } } } } } }
    11. 架构生成后,选择Create.

    在事件总线上,从事件总线上创建架构

    EventBridge可以通过发现事件来推断模式。要推断模式,您可以在事件总线上启用事件发现,并将每个唯一的架构添加到模式注册表中,包括跨账户事件的模式。发现的模式EventBridge出现在发现的模式注册表Schemas页.

    如果活动总线上的活动内容发生变化,EventBridge创建相关的新版本EventBridge架构。

    注意

    在事件总线上启用事件发现可能会产生成本。每个月前 500 万个处理的事件是免费的。

    注意

    EventBridge默认情况下,从跨账户事件中推断模式,但是您可以通过更新cross-account财产。有关更多信息,请参阅。发现者中的EventBridge架构注册表 API 参考。

    在事件总线上启用架构发现

    1. 打开 AmazonEventBridge控制台https://console.aws.amazon.com/events/.

    2. 在导航窗格中,选择 Event Buses (事件总线)

    3. 请执行下列操作之一:

      • 要启用发现默认事件总线,选择开始发现.

      • 要启用发现自定义事件总线中,选择自定义事件总线的单选按钮,然后选择开始发现.