在 Amazon Database Migration Service 中使用 Amazon SNS 事件和通知 - Amazon Database Migration Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 Amazon Database Migration Service 中使用 Amazon SNS 事件和通知

从 Amazon DMS 版本 3.4.5 及更高版本开始,我们建议您使用 Amazon EventBridge,在 Amazon DMS 事件发生时提供通知。有关将 Amazon DMS 与 EventBridge 事件结合使用的更多信息,请参阅在 Amazon Database Migration Service 中使用 Amazon EventBridge 事件和通知

将事件订阅移至 Amazon EventBridge

您可以使用以下 Amazon CLI 命令,将活跃的事件订阅从 DMS 迁移到 Amazon EventBridge,一次最多可迁移 10 个订阅。

update-subscriptions-to-event-bridge [--force-move | --no-force-move]

默认情况下,只有当您的复制实例当前版本为 Amazon DMS 3.4.5 及更高版本时,Amazon DMS 才会迁移活跃的事件订阅。要覆盖此默认行为,请使用 --force-move 选项。但是,如果您的复制实例未升级,则使用 Amazon EventBridge 时某些类型的事件可能不可用。

要运行 update-subscriptions-to-event-bridge CLI 命令,Amazon Identity and Access Management (IAM) 用户必须具有以下策略权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "SNS:GetTopicAttributes", "SNS:SetTopicAttributes", "events:PutTargets", "events:EnableRule", "events:PutRule" ], "Resource": "*" } ] }

有关将订阅移至 EventBridge 的更多信息,请参阅《Amazon Database Migration Service API 参考》中的 UpdateSubscriptionsToEventBridge

使用 Amazon SNS 事件和通知

Amazon DMS 版本 3.4.5 及更早版本支持使用事件和通知,如下所述。

Amazon Database Migration Service (Amazon DMS) 可以使用 Amazon Simple Notification Service (Amazon SNS),在发生 Amazon DMS 事件(例如创建或删除复制实例)时提供通知。您可以通过 Amazon 区域的 Amazon SNS 支持的任何形式使用这些通知,如电子邮件、短信或者调用 HTTP 端点。

Amazon DMS 将这些事件分组为您可以订阅的类别,以便您在出现该类事件时收到通知。例如,如果您订阅了指定复制实例的“创建”类别,则只要发生了与创建相关的事件影响到您的复制实例,您就会收到通知。如果您订阅了复制实例的“配置更改”类别,则您将在复制实例的配置更改时收到通知。您还将在事件通知订阅更改时收到通知。有关 Amazon DMS 提供的事件类别的列表,请参阅后文中的 Amazon DMS 事件类别和 SNS 通知的事件消息

Amazon DMS 将事件通知发送到您在创建事件订阅时提供的地址。您可能希望创建多个不同的订阅,如使用一个订阅接收所有事件通知,并使用另一个订阅接收仅针对生产 DMS 资源的关键事件。您可以在 Amazon DMS 控制台中取消选择已启用选项,或者使用 Amazon DMS API 将 Enabled 参数设置为 false,轻松地禁用通知而不删除订阅。

注意

目前,在支持 Amazon SNS 的所有 Amazon 区域中,使用 SMS 文本消息的 Amazon 事件通知可用于 Amazon DMS 资源。有关 Amazon SNS 支持 SMS 消息的 Amazon 区域和国家/地区列表,请参阅支持的区域和国家/地区

有关在 SNS 上使用文本消息的更多信息,请参阅使用 Amazon SNS 发送和接收 SMS 通知

Amazon DMS 事件通知不同于 CloudWatch 或 EventBridge 中的 CloudTrail 事件。任何 API 调用都可以生成 CloudTrail 事件通知。只有在发生了 DMS 事件时,DMS 才会发送通知。

Amazon DMS 使用订阅标识符来标识各个订阅。您可以将多个 Amazon DMS 事件订阅发布到同一个 Amazon SNS 主题。在您使用事件通知时,将会收取 Amazon SNS 费用;有关 Amazon SNS 计费的更多信息,请参阅 Amazon SNS 定价

要订阅 Amazon SNS 上的 Amazon DMS 事件,您可以使用以下过程:

  1. 创建 Amazon SNS 主题。在主题中,指定您要接收的通知类型,以及要将通知发送到的地址或号码。

  2. 使用 Amazon Web Services Management Console、Amazon CLI 或 Amazon DMS API 创建 Amazon DMS 事件通知订阅。

  3. Amazon DMS 将批准电子邮件或者 SMS 消息发送到您在订阅时提交的地址。要确认订阅,请单击批准电子邮件或 SMS 消息中的链接。

  4. 确认订阅后,订阅状态即会在 Amazon DMS 控制台的事件订阅部分中更新。

  5. 您将开始接收事件通知。

有关您可以接收通知的类型和事件的列表,请参阅下面的章节。有关订阅和使用 Amazon DMS 事件通知的更多详情,请参阅使用 SNS 订阅 Amazon DMS 事件通知

主题

    Amazon DMS 事件类别和 SNS 通知的事件消息

    重要

    从 Amazon DMS 版本 3.4.5 及更高版本开始,我们建议您使用 Amazon EventBridge,在 Amazon DMS 事件发生时提供通知。有关将 Amazon DMS 与 EventBridge 事件结合使用的更多信息,请参阅在 Amazon Database Migration Service 中使用 Amazon EventBridge 事件和通知

    Amazon DMS 会生成各种类别的大量事件,您可以使用 Amazon DMS 控制台或者 Amazon DMS API 对它们进行订阅。每个类别应用于一种源类型;当前 Amazon DMS 支持复制实例和复制任务源类型。

    下表显示了复制实例源类型可能的类别和事件。

    类别

    DMS 事件 ID

    描述

    配置更改 DMS-EVENT-0012

    正在更改此复制实例的复制实例类。

    配置更改 DMS-EVENT-0014

    此复制实例的复制实例类已更改。

    配置更改 DMS-EVENT-0018

    正在增加复制实例的存储。

    配置更改 DMS-EVENT-0017

    复制实例的存储已增加。

    配置更改 DMS-EVENT-0024

    复制实例正在过渡到多可用区配置。

    配置更改 DMS-EVENT-0025

    复制实例已完成过渡到多可用区配置。

    配置更改 DMS-EVENT-0030

    复制实例正在过渡到单可用区配置。

    配置更改 DMS-EVENT-0029

    复制实例已过渡到单可用区配置。

    创建 DMS-EVENT-0067

    正在创建复制实例。

    创建 DMS-EVENT-0005

    复制实例已创建。

    删除 DMS-EVENT-0066

    正在删除复制实例。

    删除 DMS-EVENT-0003

    复制实例已删除。

    维护 DMS-EVENT-0047 复制实例上的管理软件已更新。
    维护 DMS-EVENT-0026 复制实例正在进行脱机维护。复制实例当前不可用。
    维护 DMS-EVENT-0027 复制实例的脱机维护已完成。现在可以使用复制实例。
    维护 DMS-EVENT-0068 复制实例处于无法升级的状态。
    LowStorage DMS-EVENT-0007 复制实例已使用其分配的存储空间的 90% 以上。您可以使用可用存储空间指标监控复制实例的存储空间。
    失效转移 DMS-EVENT-0013 为多可用区复制实例启用了失效转移。
    失效转移 DMS-EVENT-0049 多可用区复制实例的失效转移已完成。
    失效转移 DMS-EVENT-0015 多可用区失效转移到备用状态已完成。
    失效转移 DMS-EVENT-0050 多可用区激活已开始。
    失效转移 DMS-EVENT-0051 多可用区激活已完成。
    失效转移 DMS-EVENT-0034 如果过于频繁地请求失效转移,则会发生此事件而不是常规失效转移事件。
    失败 DMS-EVENT-0031 复制实例遇到了存储故障。
    失败 DMS-EVENT-0036 由于不兼容的网络,复制实例失败。
    失败 DMS-EVENT-0037 服务无法访问用于加密数据卷的 Amazon KMS 密钥。

    下表显示了复制任务源类型可能的类别和事件。

    类别

    DMS 事件 ID

    描述

    状态更改 DMS-EVENT-0069

    复制任务已开始。

    状态更改 DMS-EVENT-0081

    已请求重新加载表详细信息。

    状态更改 DMS-EVENT-0079

    复制任务已停止。

    状态更改 DMS-EVENT-0091 读取暂停,已达到交换文件限制。
    状态更改 DMS-EVENT-0092 读取暂停,已达到磁盘使用量限制。
    状态更改 DMS-EVENT-0093 读取已恢复。
    失败 DMS-EVENT-0078

    复制任务已失败。

    失败 DMS-EVENT-0082

    删除任务的调用未能清理任务数据。

    配置更改 DMS-EVENT-0080 复制任务已修改。
    删除 DMS-EVENT-0073

    复制任务已删除。

    创建 DMS-EVENT-0074 复制任务已创建。

    以下示例显示了具有“状态更改”类别的 Amazon DMS 事件订阅。

    Resources: DMSEvent: Type: AWS::DMS::EventSubscription Properties: Enabled: true EventCategories: State Change SnsTopicArn: arn:aws:sns:us-east-1:123456789:testSNS SourceIds: [] SourceType: replication-task

    使用 SNS 订阅 Amazon DMS 事件通知

    重要

    从 Amazon DMS 版本 3.4.5 及更高版本开始,我们建议您使用 Amazon EventBridge,在 Amazon DMS 事件发生时提供通知。有关将 Amazon DMS 与 EventBridge 事件结合使用的更多信息,请参阅在 Amazon Database Migration Service 中使用 Amazon EventBridge 事件和通知

    您可以创建 Amazon DMS 事件通知订阅,这样就能在发生 Amazon DMS 事件时收到通知。创建订阅最简单的方式是使用 Amazon DMS 控制台。在通知订阅中,您可以选择发送通知的方式和位置。您可以指定希望收到其通知的源类型;当前 Amazon DMS 支持复制实例和复制任务源类型。并且,根据选择的源类型,您需要选择希望接收其事件通知的事件类别并标识源。

    使用 Amazon Web Services Management Console

    重要

    从 Amazon DMS 版本 3.4.5 及更高版本开始,我们建议您使用 Amazon EventBridge,在 Amazon DMS 事件发生时提供通知。有关将 Amazon DMS 与 EventBridge 事件结合使用的更多信息,请参阅在 Amazon Database Migration Service 中使用 Amazon EventBridge 事件和通知

    使用控制台订阅 Amazon SNS 上的 Amazon DMS 事件通知
    1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon DMS 控制台:https://console.aws.amazon.com/dms/v2/

      如果以 IAM 用户身份登录,请确保具有适当的 Amazon DMS 访问权限。

    2. 在导航窗格中,选择事件订阅

    3. 事件订阅页面中,选择创建事件订阅

    4. 创建事件订阅页面中,执行以下操作:

      1. 详细信息下,对于名称,输入事件通知订阅的名称。

      2. 选择已启用以启用订阅。如果您希望创建订阅但尚不发送通知,可选择已启用

      3. 目标下,选择现有主题创建新电子邮件主题新建 SMS 主题以发送通知。请确保您有可以发送通知的现有 Amazon SNS 主题,否则必须创建主题。如果您创建主题,则可以输入将通知发送到的电子邮件地址。

      4. 事件源下,对于源类型,请选择一种源类型。仅有的选项是复制实例复制任务

      5. 根据选定源类型的情况,选择您希望接收其事件通知的事件类别和源。

        
                                    控制台创建事件订阅
      6. 选择创建事件订阅

    Amazon DMS 控制台会表明正在创建订阅。

    注意

    您也可以使用 Amazon DMS API 和 CLI 创建 Amazon SNS 事件通知订阅。有关更多信息,请参阅《Amazon DMS API 参考》中的 CreateEventSubscription《Amazon DMS CLI 参考》文档中的 create-event-subscription

    验证您的 SNS 主题的访问策略

    您的 SNS 访问策略需要允许 Amazon DMS 将事件发布到 SNS 主题的权限。您可以按照以下过程中的说明验证和更新您的访问策略。

    验证访问策略
    1. 打开 Amazon SNS 控制台

    2. 在导航面板中,选择主题,然后选择您要接收 DMS 通知的主题。

    3. 选择访问策略选项卡。

    如果您的 SNS 访问策略不允许 Amazon DMS 向 SNS 主题发布事件,则可以更新策略。

    更新访问策略
    1. 在主题页面的详细信息部分,选择编辑

    2. 展开访问策略部分,然后将以下策略附加到 JSON 编辑器中。

      { "Sid": "dms-allow-publish", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sns:Publish", "Resource": "your-SNS-topic-ARN" }

      我们建议您通过指定 aws:SourceArn 条件来进一步限制对您 SNS 主题的访问权限,即发布事件到主题的 DMS EventSubscription ARN。

      ... "Resource": "your-SNS-topic-ARN" "Condition": { "StringEquals": { "aws:SourceArn": "arn:partition:dms:your-AWS-region:your-AWS-account-ID:es:your-dms-es-arn or *" }
    3. 选择保存更改