将 Amazon SNS 消息发送到不同区域中的 Amazon SQS 队列或 Amazon Lambda 函数 - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

将 Amazon SNS 消息发送到不同区域中的 Amazon SQS 队列或 Amazon Lambda 函数

Amazon SNS 支持跨区域传输,无论是默认启用的区域还是可选择加入的区域。有关 Amazon SNS 支持的当前 Amazon 区域的列表(包括选择加入的区域),请参阅 Amazon Web Services 一般参考中的 Amazon Simple Notification Service 终端节点和配额

Amazon SNS 支持跨区域传输通知到 Amazon SQS 队列以及 Amazon Lambda 函数。当其中一个区域是选择加入的区域时,您必须在订阅资源的策略中指定不同的 Amazon SNS 服务委托人。

选择加入的区域

Amazon SNS 支持以下选择加入的区域:

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • 亚太地区(雅加达)

  • Europe (Milan)

  • Middle East (Bahrain)

有关启用选择加入的区域的信息,请参阅 Amazon Web Services 一般参考中的管理 Amazon 区域

使用 Amazon SNS 将消息从选择加入的区域传输到默认启用的区域时,必须更改为队列创建的资源策略。将委托人 sns.amazonaws.com 替换为 sns.<opt-in-region>.amazonaws.com。例如:

  • 要为美国东部(弗吉尼亚州北部)的 Amazon SQS 队列订阅亚太地区(香港)的 Amazon SNS 主题,请将队列策略中的主体更改为 sns.ap-east-1.amazonaws.com。选择加入区域包括 2019 年 3 月 20 日之后推出的任何区域,包括亚太地区(香港)、亚太地区(雅加达)、中东(巴林)、欧盟(米兰)和非洲(开普敦)。2019 年 3 月 20 日之前推出的区域默认情况下处于启用状态。

    对于 Amazon SQS 的跨区域传输支持
    跨区域传输类型 支持/不支持
    原定设置启用的区域至选择加入区域 在队列的服务主体中使用 sns.<opt-in-region>.amazonaws.com 提供支持

    选择加入区域至原定设置启用的区域

    在队列的服务主体中使用 sns.<opt-in-region>.amazonaws.com 提供支持

    选择加入区域至选择加入区域

    不支持

    以下是访问策略声明的示例,该声明允许选择加入区域(af-south-1)中的 Amazon SNS 主题传输到原定设置启用的区域(us-east-1)中的 Amazon SQS 队列。它在路径 Statement/Principal/Service 下包含必要的区域化服务主体配置。

    { "Version": "2008-10-17", "Id": "__default_policy_ID", "Statement": [ { "Sid": "allow_sns_arn:aws:sns:af-south-1:111111111111:source_topic_name", "Effect": "Allow", "Principal": { "Service": "sns.af-south-1.amazonaws.com" }, "Action": "SQS:SendMessage", "Resource": "arn:aws:sqs:us-east-1:111111111111:destination_queue_name", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sns:af-south-1:111111111111:source_topic_name" } } }, ... ] }
  • 要为美国东部(弗吉尼亚州北部)的 Amazon Lambda 函数订阅亚太地区(香港)的 Amazon SNS 主题,请将 Amazon Lambda 函数策略中的主体更改为 sns.ap-east-1.amazonaws.com。选择加入区域包括 2019 年 3 月 20 日之后推出的任何区域,包括亚太地区(香港)、亚太地区(雅加达)、中东(巴林)、欧盟(米兰)和非洲(开普敦)。2019 年 3 月 20 日之前推出的区域默认情况下处于启用状态。

    对于 Amazon Lambda 的跨区域传输支持
    跨区域传输类型 支持/不支持
    原定设置启用的区域至选择加入区域 不支持

    选择加入区域至原定设置启用的区域

    在 Lambda 函数的服务主体中使用 sns.<opt-in-region>.amazonaws.com 提供支持
    选择加入区域至选择加入区域 不支持