

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為 Amazon SNS 建立 Amazon VPC 端點
<a name="sns-vpc-create-endpoint"></a>

若要從 Amazon VPC 將訊息發佈至 Amazon SNS 主題，請建立一個界面 VPC 端點。然後，您可以將訊息發佈到主題，同時讓您的流量維持在 VPC 管理的網路中。

使用以下資訊來建立端點，並測試 VPC 和 Amazon SNS 之間的連線。或者，請參閱 [從 Amazon VPC 發佈 Amazon SNS 訊息](sns-vpc-tutorial.md)，以取得協助您從零開始的逐步解說。

## 建立端點
<a name="sns-vpc-endpoint-create"></a>

您可以使用 AWS 管理主控台、、 AWS CLI AWS SDK、Amazon SNS API 或 在 VPC 中建立 Amazon SNS 端點 AWS CloudFormation。

如需使用 Amazon VPC 主控台或 AWS CLI，請參閱 *Amazon VPC 使用者指南*中的[建立界面端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint)。

**重要**  
Amazon 虛擬私有雲端只能搭配 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` 或 `us-east-2.queue.amazonaws.com` 之類的延遲端點

如需有關使用 建立和設定端點的資訊 AWS CloudFormation，請參閱*AWS CloudFormation 《 使用者指南*》中的 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html) 資源。

## 測試 VPC 和 Amazon SNS 之間的連線
<a name="sns-vpc-publish"></a>

為 Amazon SNS 建立端點後，您可以從 VPC 發佈訊息到 Amazon SNS 主題。若要測試此連線，請執行以下動作：

1. 連線至位於 VPC 中的 Amazon EC2 執行個體。如需連線的詳細資訊，請參閱 Amazon EC2 文件中的[連線至 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/DeveloperGuide/AccessingInstances.html)或[連線至 Windows 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/connecting_to_windows_instance.html)。

   例如，若要使用 SSH 用戶端連線到 Linux 執行個體，請在終端機中執行以下命令：

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

   其中：
   + *ec2-key-pair.pem* 是包含當您建立執行個體時 Amazon EC2 所提供金鑰對的檔案。
   + *instance-hostname* 是執行個體的公開主機名稱。若要在 [Amazon EC2 主控台](https://console.aws.amazon.com/ec2)中取得主機名稱：選擇**執行個體**、選擇執行個體，然後尋找**公有 DNS** 的值。

1. 從您的執行個體，使用 Amazon SNS [https://docs.aws.amazon.com/cli/latest/reference/sns/publish.html](https://docs.aws.amazon.com/cli/latest/reference/sns/publish.html) 命令搭配 AWS CLI。您可以使用下列命令，傳送簡單的訊息到主題：

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

   其中：
   + *aws-region* 是主題所在的 AWS 區域。
   + *sns-topic-arn* 是主題的 Amazon 資源名稱 (ARN)。若要從 [Amazon SNS 主控台](https://console.aws.amazon.com/sns/home)取得 ARN：選擇 **Topics** (主題)、找到主題，然後找到 **ARN** 欄中的值。

   如果 Amazon SNS 成功接收訊息，終端會列印訊息 ID，看起來如下：

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