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

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

创建 Amazon EventBridge 架构

您可以通过将 JSON 文件与OpenAPI 规范JSON 架构草稿 4 规范。您可以在 EventBridge 中创建或上传您自己的模式,方法是使用模板或基于event。您还可以从事件总线。要使用 EventBridge 架构注册表 API 创建架构,请使用CreateSchemaAPI 操作。

当您在 OpenAPI 3 和 JSON 架构草稿 4 格式之间进行选择时,请考虑以下差异:

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

  • 关键字的处理方式有细微的差异,例如typeformat

  • OpenAPI 在 JSON 文档中不支持 JSON 架构超模式超链接。

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

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

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

使用模板创建架构

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

主题

    下载架构模板

    1. 打开位于 https://console.aws.amazon.com/events/ 的 Amazon EventBridge 控制台。

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

    3. 入门下的部分Schema 模板中,选择下载

    或者,您可以从以下代码示例复制 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. 打开位于 https://console.aws.amazon.com/events/ 的 Amazon EventBridge 控制台。

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

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

    4. REDE架构详细信息中,输入架构的名称。

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

    6. 适用于架构类型,选择OpenAPI 3.0或者JSON 架构草案 4

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

    8. 选择 Create (创建)

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

    在控制台中编辑架构

    1. 打开位于 https://console.aws.amazon.com/events/ 的 Amazon EventBridge 控制台。

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

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

    4. REDE架构详细信息中,输入架构的名称。

    5. 适用于架构类型,选择OpenAPI 3.0或者JSON 架构草案 4

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

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

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

    9. 选择 Create (创建)

    从事件的 JSON 创建架构

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

    基于事件的 JSON 创建架构

    1. 打开位于 https://console.aws.amazon.com/events/ 的 Amazon EventBridge 控制台。

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

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

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

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

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

      从事件的 JSON 创建模式时,不能使用 JSON 架构。

    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 万个处理的事件是免费的。

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

    1. 打开位于 https://console.aws.amazon.com/events/ 的 Amazon EventBridge 控制台。

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

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

      • 若要启用默认事件总线中,选择启动发现

      • 若要启用自定义事件总线,选择自定义事件总线的单选按钮,然后选择启动发现