为 Amazon SNS 创建 Amazon VPC 终端节点 - Amazon Simple Notification Service

为 Amazon SNS 创建 Amazon VPC 终端节点

要将消息从 Amazon VPC 发布到您的 Amazon SNS 主题,请创建一个接口 VPC 终端节点。然后,您可以将消息发布到主题,同时保留您利用该 VPC 管理的网络内的流量。

使用以下信息创建终端节点并测试 VPC 与 Amazon SNS 之间的连接。或者,有关可帮助您从头开始的演练,请参阅从 Amazon VPC 发布 Amazon SNS 消息

创建终端节点

您可以使用 AWS Management Console、AWS CLI、AWS 开发工具包、Amazon SNS API 或 AWS CloudFormation 在 VPC 中创建 Amazon SNS 终端节点。

有关使用 Amazon VPC 控制台或 AWS CLI 创建和配置终端节点的信息,请参阅 Amazon VPC 用户指南中的创建接口终端节点

重要

您只能将 Amazon Virtual Private Cloud 与 HTTPS Amazon SNS 端点一起使用。

在创建终端节点时,请将 Amazon SNS 指定为您希望 VPC 连接到的服务。在 Amazon VPC 控制台中,服务名称因区域而异。例如,如果您选择美国东部(弗吉尼亚北部),则服务名称为 com.amazonaws.us-east-1.sns

当您将 Amazon SNS 配置为从 Amazon VPC 发送消息时,必须启用私有 DNS 并按格式 sns.us-east-2.amazonaws.com 指定端点。

私有 DNS 不支持传统端点,例如 queue.amazonaws.com.rproxy.goskope.comus-east-2.queue.amazonaws.com

有关使用 AWS CloudFormation 创建和配置端点的信息,请参阅 AWS CloudFormation 用户指南中的 AWS::EC2::VPCEndpoint 资源。

测试您的 VPC 和 Amazon SNS 之间的连接

在为 Amazon SNS 创建终端节点后,您可以将消息从您的 VPC 发布到 Amazon SNS 主题。要测试此连接,请执行以下操作:

  1. 连接到位于您的 VPC 中的 Amazon EC2 实例。有关连接的信息,请参阅 Amazon EC2 文档中的连接到您的 Linux 实例连接到您的 Windows 实例

    例如,要使用 SSH 客户端连接到 Linux 实例,请从终端运行以下命令:

    $ ssh -i ec2-key-pair.pem ec2-user@instance-hostname

    其中:

    • ec2-key-pair.pem 是包含 Amazon EC2 在您创建实例时提供的密钥对的文件。

    • instance-hostname 是实例的公有主机名。要在 Amazon EC2 控制台中获取该主机名:请选择 Instances(实例),选择您的实例,然后找到 Public DNS (IPv4)(公有 DNS (IPv4))的值。

  2. 在您的实例中,将 Amazon SNS publish 命令与 AWS CLI 结合使用。您可以使用以下命令将简单的消息发送到主题:

    $ aws sns publish --region aws-region --topic-arn sns-topic-arn --message "Hello"

    其中:

    • aws-region 是主题所在的 AWS 区域。

    • sns-topic-arn 是主题的 Amazon Resource Name (ARN)。从 Amazon SNS 控制台获取该 ARN:选择 Topics(主题),查找您的主题,然后找到 ARN 列中对应的值。

    如果 Amazon SNS 已成功收到消息,终端会打印一个消息 ID,如下所示:

    { "MessageId": "6c96dfff-0fdf-5b37-88d7-8cba910a8b64" }