

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

# 使用 Amazon SQS 主控台訂閱 Amazon SNS 主題的佇列 Amazon SQS
<a name="sqs-configure-subscribe-queue-sns-topic"></a>

您可以訂閱一或多個 Amazon SQS 佇列至 Amazon SNS 主題。當您發佈訊息至主題時，Amazon SNS 會將訊息傳送至每個訂閱的佇列。Amazon SQS 會管理訂閱並處理所需的許可。如需詳細資訊，請參閱《Amazon Simple Notification Service 開發人員指南》**中的[什麼是 Amazon SNS？](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)

當您訂閱 Amazon SQS 佇列至 Amazon SNS 主題時，Amazon SNS 會使用 HTTPS 將訊息轉送至 Amazon SQS。如需搭配加密的 Amazon SQS 佇列使用 Amazon SNS 的詳細資訊，請參閱 [設定 AWS 服務的 KMS 許可](sqs-key-management.md#compatibility-with-aws-services)。 Amazon SQS 

**重要**  
Amazon SQS 支援每個存取政策最多 20 個陳述式。訂閱 Amazon SNS 主題會新增一個這類陳述式。超過此數量會導致主題訂閱交付失敗。

**訂閱 Amazon SNS 主題的佇列 （主控台）**

1. 在 [https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/) 開啟 Amazon SQS 主控台。

1. 在導覽窗格中，選擇 **Queues** (佇列)。

1. 在佇列清單中選擇要訂閱 Amazon SNS 主題的 佇列。

1. 在 **Actions** (動作) 選單中選擇 **Subscribe to Amazon SNS topic** (訂閱 Amazon SNS 主題)。

1. 從**指定此佇列可用的 Amazon SNS 主題**功能表中，選擇佇列的 Amazon SNS 主題。

   如果未列出 SNS 主題，請選擇**輸入 Amazon SNS 主題 ARN**，然後輸入主題的 Amazon Resource Name (ARN)。

1. 選擇**儲存**。

1. 若要驗證訂閱，請將訊息發佈至 主題，並檢視佇列中的訊息。如需詳細資訊，請參閱[《Amazon Simple Notification Service 開發人員指南》中的 Amazon SNS 訊息發佈](https://docs.aws.amazon.com/sns/latest/dg/sns-publishing.html)。 **

## 跨帳戶訂閱
<a name="cross-account-subscriptions"></a>

如果您的 Amazon SQS 佇列和 Amazon SNS 主題不同 AWS 帳戶，則需要額外的許可。

**主題擁有者 （帳戶 A)**

修改 Amazon SNS 主題的存取政策， AWS 帳戶 以允許 Amazon SQS 佇列的 訂閱。範例政策陳述式：

```
{
  "Effect": "Allow",
  "Principal": { "AWS": "arn:aws:iam::111122223333:root" },
  "Action": "sns:Subscribe",
  "Resource": "arn:aws:sns:us-east-1:123456789012:MyTopic"
}
```

此政策允許帳戶`111122223333`訂閱 `MyTopic`。

**佇列擁有者 （帳戶 B)**

修改 Amazon SQS 佇列的存取政策，以允許 Amazon SNS 主題傳送訊息。範例政策陳述式：

```
{
  "Effect": "Allow",
  "Principal": { "Service": "sns.amazonaws.com" },
  "Action": "sqs:SendMessage",
  "Resource": "arn:aws:sqs:us-east-1:111122223333:MyQueue",
  "Condition": {
    "ArnEquals": { "aws:SourceArn": "arn:aws:sns:us-east-1:123456789012:MyTopic" }
  }
}
```

此政策允許 `MyTopic`傳送訊息至 `MyQueue`。

## 跨區域訂閱
<a name="cross-region-subscriptions"></a>

若要訂閱不同 中的 Amazon SNS 主題 AWS 區域，請確定：
+ Amazon SNS 主題的存取政策允許跨區域訂閱。
+ Amazon SQS 佇列的存取政策允許 Amazon SNS 主題跨區域傳送訊息。

如需詳細資訊，[請參閱《Amazon Simple Notification Service 開發人員指南》中的將 Amazon SNS 訊息傳送至不同區域中的 Amazon SQS 佇列或 AWS Lambda 函數](https://docs.aws.amazon.com/sns/latest/dg/sns-cross-region-delivery.html)。 **