本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
从 AWS DMS 3.4.5 版本及更高版本开始,我们建议您在 AWS DMS 事件发生时使用 Amazon EventBridge 提供通知。有关将 EventBridge 事件与配合使用的更多信息 AWS DMS,请参阅在 Amazon 中处理 EventBridge 事件和通知 AWS Database Migration Service。
将活动订阅移至 Amazon EventBridge
您可以使用以下 AWS CLI 命令将活跃的事件订阅从 DMS 迁移到 Amazon EventBridge,一次最多可迁移 10 个。
update-subscriptions-to-event-bridge [--force-move | --no-force-move]
默认情况下, AWS DMS 只有当您的复制实例最新版本为 AWS DMS 3.4.5 及更高版本时,才会迁移活动事件订阅。要覆盖此默认行为,请使用 --force-move
选项。但是, EventBridge 如果您的复制实例未升级,则使用 Amazon 可能无法使用某些类型的事件。
要运行 update-subscriptions-to-event-bridge
CLI 命令, AWS 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,请参阅 AWS Database Migration Service API 参考UpdateSubscriptionsToEventBridge中的。
使用 Amazon SNS 事件和通知
AWS DMS 3.4.5 及更早版本支持使用事件和通知,如下所述。
AWS 数据库迁移服务 (AWS DMS) 可以使用亚马逊简单通知服务 (Amazon SNS) 在发生 AWS DMS 事件(例如创建或删除复制实例)时提供通知。您可以通过 AWS 区域的 Amazon SNS 支持的任何形式使用这些通知,如电子邮件、短信或者调用 HTTP 端点。
AWS DMS 将事件分组为您可以订阅的类别,这样当该类别的事件发生时,您就可以收到通知。例如,如果您订阅了指定复制实例的“创建”类别,则只要发生了与创建相关的事件影响到您的复制实例,您就会收到通知。如果您订阅了复制实例的“配置更改”类别,则您将在复制实例的配置更改时收到通知。您还将在事件通知订阅更改时收到通知。有关 AWS DMS 提供的事件类别列表AWS DMS 事件类别和 SNS 通知的事件消息,请参阅以下内容。
AWS DMS 会将事件通知发送到您在创建活动订阅时提供的地址。您可能希望创建多个不同的订阅,如使用一个订阅接收所有事件通知,并使用另一个订阅接收仅针对生产 DMS 资源的关键事件。您可以在 AWS DMS 控制台中取消选择 “启用” 选项,或者使用 DMS API 将该Enabled
参数设置为 false,无需删除订阅即可轻松关闭通知。 AWS
注意
AWS 目前,所有支持 Amazon SNS 的 AWS 地区的 AWS DMS 资源都可以使用短信发送的 DMS 事件通知。有关 Amazon SNS 支持 SMS 消息的 AWS 区域和国家/地区列表,请参阅支持的区域和国家/地区。
有关在 SNS 上使用文本消息的更多信息,请参阅使用 Amazon SNS 发送和接收 SMS 通知。
AWS DMS 事件通知不同于 CloudWatch 或中的 CloudTrail 事件 EventBridge。 CloudTrail 事件通知可以通过任何 API 调用生成。只有在发生了 DMS 事件时,DMS 才会发送通知。
AWS DMS 使用订阅标识符来标识每个订阅。您可以针对同一 Amazon AWS SNS 主题发布多个 DMS 活动订阅。在您使用事件通知时,将会收取 Amazon SNS 费用;有关 Amazon SNS 计费的更多信息,请参阅 Amazon SNS 定价
要通过 Amazon SN AWS S 订阅 DMS 事件,请按以下步骤操作:
-
创建 Amazon SNS 主题。在主题中,指定您要接收的通知类型,以及要将通知发送到的地址或号码。
-
使用 AWS Management Console、 AWS CLI或 AWS DMS API 创建 AWS DMS 事件通知订阅。
-
AWS DMS 会向您在订阅时提交的地址发送批准电子邮件或短信。要确认订阅,请单击批准电子邮件或 SMS 消息中的链接。
-
确认订阅后,您的订阅状态将在 AWS DMS 控制台的 “活动订阅” 部分中更新。
-
您将开始接收事件通知。
有关您可以接收通知的类型和事件的列表,请参阅下面的章节。有关订阅和使用 AWS DMS 事件订阅的更多详细信息,请参阅。使用 SNS 订阅 AWS DMS 事件通知
主题
AWS DMS 事件类别和 SNS 通知的事件消息
重要
从 AWS DMS 3.4.5 版本及更高版本开始,我们建议您在 AWS DMS 事件发生时使用 Amazon EventBridge 提供通知。有关将 EventBridge 事件与配合使用的更多信息 AWS DMS,请参阅在 Amazon 中处理 EventBridge 事件和通知 AWS Database Migration Service。
AWS DMS 按类别生成大量事件,您可以使用 AWS DMS 控制台或 DMS API 订阅这些 AWS 事件。每个类别都适用于一种源类型;目前 AWS 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 | 如果过于频繁地请求失效转移,则会发生此事件而不是常规失效转移事件。 |
Failure | DMS-EVENT-0031 | 复制实例遇到了存储故障。 |
Failure | DMS-EVENT-0036 | 由于不兼容的网络,复制实例失败。 |
Failure | DMS-EVENT-0037 | 该服务无法访问用于加密数据量的密 AWS KMS 钥。 |
下表显示了复制任务源类型可能的类别和事件。
类别 |
DMS 事件 ID |
描述 |
---|---|---|
状态更改 | DMS-EVENT-0069 |
复制任务已开始。 |
状态更改 | DMS-EVENT-0081 |
已请求重新加载表详细信息。 |
状态更改 | DMS-EVENT-0079 |
复制任务已停止。 |
状态更改 | DMS-EVENT-0091 | 读取暂停,已达到交换文件限制。 |
状态更改 | DMS-EVENT-0092 | 读取暂停,已达到磁盘使用量限制。 |
状态更改 | DMS-EVENT-0093 | 读取已恢复。 |
Failure | DMS-EVENT-0078 |
复制任务已失败。 |
Failure | DMS-EVENT-0082 |
删除任务的调用未能清理任务数据。 |
配置更改 | DMS-EVENT-0080 | 复制任务已修改。 |
删除 | DMS-EVENT-0073 |
复制任务已删除。 |
创建 | DMS-EVENT-0074 | 复制任务已创建。 |
以下示例显示了 “状态更改” 类别 AWS 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 订阅 AWS DMS 事件通知
重要
从 AWS DMS 3.4.5 版本及更高版本开始,我们建议您在 AWS DMS 事件发生时使用 Amazon EventBridge 提供通知。有关将 EventBridge 事件与配合使用的更多信息 AWS DMS,请参阅在 Amazon 中处理 EventBridge 事件和通知 AWS Database Migration Service。
您可以创建 AWS DMS 事件通知订阅,以便在 AWS DMS 事件发生时收到通知。创建订阅的最简单方法是使用 AWS DMS 控制台。在通知订阅中,您可以选择发送通知的方式和位置。您可以指定要收到通知的源类型;目前 AWS DMS 支持复制实例和复制任务源类型。并且,根据选择的源类型,您需要选择希望接收其事件通知的事件类别并标识源。
使用 AWS Management Console
重要
从 AWS DMS 3.4.5 版本及更高版本开始,我们建议您在 AWS DMS 事件发生时使用 Amazon EventBridge 提供通知。有关将 EventBridge 事件与配合使用的更多信息 AWS DMS,请参阅在 Amazon 中处理 EventBridge 事件和通知 AWS Database Migration Service。
使用控制台通过 Amazon SN AWS S 订阅 DMS 事件通知
-
登录 AWS Management Console 并在 https://console.aws.amazon.com/dms/v2
/上打开 AWS DMS 控制台。 如果以 IAM 用户身份登录,请确保具有适当的 AWS DMS访问权限。
-
在导航窗格中,选择事件订阅。
-
在事件订阅页面中,选择创建事件订阅。
-
在创建事件订阅页面中,执行以下操作:
-
在详细信息下,对于名称,输入事件通知订阅的名称。
-
选择已启用以启用订阅。如果您希望创建订阅但尚不发送通知,可选择已启用。
-
在目标下,选择现有主题、创建新电子邮件主题或新建 SMS 主题以发送通知。请确保您有可以发送通知的现有 Amazon SNS 主题,否则必须创建主题。如果您创建主题,则可以输入将通知发送到的电子邮件地址。
-
在事件源下,对于源类型,请选择一种源类型。仅有的选项是复制实例和复制任务。
-
根据选定源类型的情况,选择您希望接收其事件通知的事件类别和源。
-
选择创建事件订阅。
-
AWS DMS 控制台显示订阅正在创建中。
注意
您也可以使用 AWS DMS API 和 CLI 创建 Amazon SNS 事件通知订阅。有关更多信息,请参阅 AWS DMS API 参考和 AWS DMS CLI 参考文档create-event-subscription中的。CreateEventSubscription
验证您的 SNS 主题的访问策略
您的 SNS 访问策略需要允许将事件发布 AWS DMS 到您的 SNS 主题的权限。您可以按照以下过程中的说明验证和更新您的访问策略。
验证访问策略
-
打开 Amazon SNS 控制台。
-
在导航面板中,选择主题,然后选择您要接收 DMS 通知的主题。
-
选择访问策略选项卡。
如果您的 SNS 访问策略不允许向您的 SNS 主题发布事件 AWS DMS ,则可以更新您的政策。
更新访问策略
-
在主题页面的详细信息部分,选择编辑。
-
展开访问策略部分,然后将以下策略附加到 JSON 编辑器中。
{ "Sid": "dms-allow-publish", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sns:Publish", "Resource": "
your-SNS-topic-ARN
" }我们建议您通过指定
aws:SourceArn
条件(即向该主题发布事件的 DMS EventSubscription Arn)来进一步限制对您的 SNS 主题的访问权限。... "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 *
" } -
选择 Save changes(保存更改)。