

文件 AWS 開發套件範例 GitHub 儲存庫中有更多可用的 [AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples)。

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

# 使用 的 Amazon SNS 範例 AWS CLI
<a name="cli_2_sns_code_examples"></a>

下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 Amazon SNS 執行動作和實作常見案例。

*Actions* 是大型程式的程式碼摘錄，必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數，但您可以在其相關情境中查看內容中的動作。

*案例*是向您展示如何呼叫服務中的多個函數或與其他 AWS 服務組合來完成特定任務的程式碼範例。

每個範例均包含完整原始碼的連結，您可在連結中找到如何設定和執行內容中程式碼的相關指示。

**Topics**
+ [動作](#actions)
+ [案例](#scenarios)

## 動作
<a name="actions"></a>

### `add-permission`
<a name="sns_AddPermission_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `add-permission`。

**AWS CLI**  
**將許可新增至主題**  
下列`add-permission`範例會新增 AWS 帳戶 的許可`987654321098`，以將 `Publish`動作與 AWS 帳戶 下指定的主題搭配使用`123456789012`。  

```
aws sns add-permission \
    --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic \
    --label Publish-Permission \
    --aws-account-id 987654321098 \
    --action-name Publish
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《*AWS CLI 命令參考*》中的 [AddPermission](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/add-permission.html)。

### `check-if-phone-number-is-opted-out`
<a name="sns_CheckIfPhoneNumberIsOptedOut_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `check-if-phone-number-is-opted-out`。

**AWS CLI**  
**檢查電話號碼是否停止接收簡訊**  
下列`check-if-phone-number-is-opted-out`範例會檢查指定的電話號碼是否選擇退出接收來自目前 AWS 帳戶的簡訊。  

```
aws sns check-if-phone-number-is-opted-out \
    --phone-number +1555550100
```
輸出：  

```
{
    "isOptedOut": false
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [CheckIfPhoneNumberIsOptedOut](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/check-if-phone-number-is-opted-out.html)。

### `confirm-subscription`
<a name="sns_ConfirmSubscription_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `confirm-subscription`。

**AWS CLI**  
**確認訂閱**  
下列 `confirm-subscription` 命令會完成您訂閱名為 `my-topic` 的 SNS 主題時啟動的確認程序。-token 參數來自傳送到訂閱呼叫中所指定通知端點的確認訊息。  

```
aws sns confirm-subscription \
    --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic \
    --token 2336412f37fb687f5d51e6e241d7700ae02f7124d8268910b858cb4db727ceeb2474bb937929d3bdd7ce5d0cce19325d036bc858d3c217426bcafa9c501a2cace93b83f1dd3797627467553dc438a8c974119496fc3eff026eaa5d14472ded6f9a5c43aec62d83ef5f49109da7176391
```
輸出：  

```
{
    "SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f"
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [ConfirmSubscription](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/confirm-subscription.html)。

### `create-platform-application`
<a name="sns_CreatePlatformApplication_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `create-platform-application`。

**AWS CLI**  
**建立平台應用程式**  
下列 `create-platform-application` 範例會使用指定平台憑證建立 Google Firebase 平台應用程式。  

```
aws sns create-platform-application \
    --name MyApplication \
    --platform GCM \
    --attributes PlatformCredential=EXAMPLEabcd12345jklm67890stuv12345bcdef
```
輸出：  

```
{
    "PlatformApplicationArn": "arn:aws:sns:us-west-2:123456789012:app/GCM/MyApplication"
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [CreatePlatformApplication](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/create-platform-application.html)。

### `create-topic`
<a name="sns_CreateTopic_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `create-topic`。

**AWS CLI**  
**建立 SNS 主題**  
下列 `create-topic` 範例會建立名為 `my-topic` 的 SNS 主題。  

```
aws sns create-topic \
    --name my-topic
```
輸出：  

```
{
    "ResponseMetadata": {
        "RequestId": "1469e8d7-1642-564e-b85d-a19b4b341f83"
    },
    "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic"
}
```
如需詳細資訊，請參閱《 [AWS 命令列界面使用者指南》中的搭配 Amazon SQS 和 Amazon SNS 使用](https://docs.aws.amazon.com/cli/latest/userguide/cli-sqs-queue-sns-topic.html)命令列界面。 *AWS *  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [CreateTopic](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/create-topic.html)。

### `delete-endpoint`
<a name="sns_DeleteEndpoint_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `delete-endpoint`。

**AWS CLI**  
**建立平台應用程式端點**  
下列 `delete-endpoint` 範例會刪除指定平台應用程式端點。  

```
aws sns delete-endpoint \
    --endpoint-arn arn:aws:sns:us-west-2:123456789012:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [DeleteEndpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/delete-endpoint.html)。

### `delete-platform-application`
<a name="sns_DeletePlatformApplication_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `delete-platform-application`。

**AWS CLI**  
**刪除平台應用程式**  
下列 `delete-platform-application` 範例會刪除指定平台應用程式。  

```
aws sns delete-platform-application \
    --platform-application-arn arn:aws:sns:us-west-2:123456789012:app/ADM/MyApplication
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [DeletePlatformApplication](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/delete-platform-application.html)。

### `delete-topic`
<a name="sns_DeleteTopic_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `delete-topic`。

**AWS CLI**  
**刪除 SNS 主題**  
下列 `delete-topic` 範例會刪除指定的 SNS 主題。  

```
aws sns delete-topic \
    --topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic"
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [DeleteTopic](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/delete-topic.html)。

### `get-endpoint-attributes`
<a name="sns_GetEndpointAttributes_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `get-endpoint-attributes`。

**AWS CLI**  
**列出平台應用程式端點屬性**  
下列 `get-endpoint-attributes` 範例會列出指定平台應用程式端點的屬性。  

```
aws sns get-endpoint-attributes \
    --endpoint-arn arn:aws:sns:us-west-2:123456789012:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234
```
輸出：  

```
{
    "Attributes": {
        "Enabled": "true",
        "Token": "EXAMPLE12345..."
    }
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [GetEndpointAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/get-endpoint-attributes.html)。

### `get-platform-application-attributes`
<a name="sns_GetPlatformApplicationAttributes_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `get-platform-application-attributes`。

**AWS CLI**  
**列出平台應用程式屬性**  
下列 `get-platform-application-attributes` 範例會列出指定平台應用程式的屬性。  

```
aws sns get-platform-application-attributes \
    --platform-application-arn arn:aws:sns:us-west-2:123456789012:app/MPNS/MyApplication
```
輸出：  

```
{
    "Attributes": {
        "Enabled": "true",
        "SuccessFeedbackSampleRate": "100"
    }
}
```
+  如需 API 詳細資訊，請參閱《*AWS CLI API 參考*》中的 [GetPlatformApplicationAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/get-platform-application-attributes.html)。

### `get-sms-attributes`
<a name="sns_GetSMSAttributes_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `get-sms-attributes`。

**AWS CLI**  
**列出預設簡訊屬性**  
下列 `get-sms-attributes` 範例會列出傳送簡訊的預設屬性。  

```
aws sns get-sms-attributes
```
輸出：  

```
{
    "attributes": {
        "DefaultSenderID": "MyName"
    }
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [GetSMSAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/get-sms-attributes.html)。

### `get-subscription-attributes`
<a name="sns_GetSubscriptionAttributes_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `get-subscription-attributes`。

**AWS CLI**  
**擷取主題的訂閱屬性**  
下列 `get-subscription-attributes` 會顯示指定訂閱的屬性。您可以從 `list-subscriptions` 命令的輸出取得 `subscription-arn`。  

```
aws sns get-subscription-attributes \
    --subscription-arn "arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f"
```
輸出：  

```
{
    "Attributes": {
        "Endpoint": "my-email@example.com",
        "Protocol": "email",
        "RawMessageDelivery": "false",
        "ConfirmationWasAuthenticated": "false",
        "Owner": "123456789012",
        "SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f",
        "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic"
    }
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [GetSubscriptionAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/get-subscription-attributes.html)。

### `get-topic-attributes`
<a name="sns_GetTopicAttributes_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `get-topic-attributes`。

**AWS CLI**  
**擷取主題的屬性**  
下列 `get-topic-attributes` 範例會顯示指定主題的屬性。  

```
aws sns get-topic-attributes \
    --topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic"
```
輸出：  

```
{
    "Attributes": {
        "SubscriptionsConfirmed": "1",
        "DisplayName": "my-topic",
        "SubscriptionsDeleted": "0",
        "EffectiveDeliveryPolicy": "{\"http\":{\"defaultHealthyRetryPolicy\":{\"minDelayTarget\":20,\"maxDelayTarget\":20,\"numRetries\":3,\"numMaxDelayRetries\":0,\"numNoDelayRetries\":0,\"numMinDelayRetries\":0,\"backoffFunction\":\"linear\"},\"disableSubscriptionOverrides\":false}}",
        "Owner": "123456789012",
        "Policy": "{\"Version\":\"2008-10-17\",\"Id\":\"__default_policy_ID\",\"Statement\":[{\"Sid\":\"__default_statement_ID\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":[\"SNS:Subscribe\",\"SNS:ListSubscriptionsByTopic\",\"SNS:DeleteTopic\",\"SNS:GetTopicAttributes\",\"SNS:Publish\",\"SNS:RemovePermission\",\"SNS:AddPermission\",\"SNS:SetTopicAttributes\"],\"Resource\":\"arn:aws:sns:us-west-2:123456789012:my-topic\",\"Condition\":{\"StringEquals\":{\"AWS:SourceOwner\":\"0123456789012\"}}}]}",
        "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic",
        "SubscriptionsPending": "0"
    }
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [GetTopicAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/get-topic-attributes.html)。

### `list-endpoints-by-platform-application`
<a name="sns_ListEndpointsByPlatformApplication_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `list-endpoints-by-platform-application`。

**AWS CLI**  
**列出平台應用程式的端點**  
下列 `list-endpoints-by-platform-application` 範例會列出指定平台應用程式的端點和端點屬性。  

```
aws sns list-endpoints-by-platform-application \
    --platform-application-arn arn:aws:sns:us-west-2:123456789012:app/GCM/MyApplication
```
輸出：  

```
{
    "Endpoints": [
        {
            "Attributes": {
                "Token": "EXAMPLE12345...,
                "Enabled": "true"
            },
            "EndpointArn": "arn:aws:sns:us-west-2:123456789012:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234"
        }
    ]
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [ListEndpointsByPlatformApplication](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/list-endpoints-by-platform-application.html)。

### `list-phone-numbers-opted-out`
<a name="sns_ListPhoneNumbersOptedOut_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `list-phone-numbers-opted-out`。

**AWS CLI**  
**列出停止接收簡訊**  
下列 `list-phone-numbers-opted-out` 範例會列出選擇停止接收簡訊的電話號碼。  

```
aws sns list-phone-numbers-opted-out
```
輸出：  

```
{
    "phoneNumbers": [
        "+15555550100"
    ]
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [ListPhoneNumbersOptedOut](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/list-phone-numbers-opted-out.html)。

### `list-platform-applications`
<a name="sns_ListPlatformApplications_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `list-platform-applications`。

**AWS CLI**  
**列出平台應用程式**  
下列 `list-platform-applications` 範例會列出 ADM 和 MPNS 的平台應用程式。  

```
aws sns list-platform-applications
```
輸出：  

```
{
    "PlatformApplications": [
        {
            "PlatformApplicationArn": "arn:aws:sns:us-west-2:123456789012:app/ADM/MyApplication",
            "Attributes": {
                "SuccessFeedbackSampleRate": "100",
                "Enabled": "true"
            }
        },
        {
            "PlatformApplicationArn": "arn:aws:sns:us-west-2:123456789012:app/MPNS/MyOtherApplication",
            "Attributes": {
                "SuccessFeedbackSampleRate": "100",
                "Enabled": "true"
            }
        }
    ]
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [ListPlatformApplications](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/list-platform-applications.html)。

### `list-subscriptions-by-topic`
<a name="sns_ListSubscriptionsByTopic_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `list-subscriptions-by-topic`。

**AWS CLI**  
**列出與主題相關聯的訂閱**  
下列 `list-subscriptions-by-topic` 會擷取與指定主題相關聯的 SNS 訂閱清單。  

```
aws sns list-subscriptions-by-topic \
    --topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic"
```
輸出：  

```
{
    "Subscriptions": [
        {
            "Owner": "123456789012",
            "Endpoint": "my-email@example.com",
            "Protocol": "email",
            "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic",
            "SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f"
        }
    ]
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [ListSubscriptionsByTopic](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/list-subscriptions-by-topic.html)。

### `list-subscriptions`
<a name="sns_ListSubscriptions_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `list-subscriptions`。

**AWS CLI**  
**列出您的 SNS 訂閱**  
下列`list-subscriptions`範例顯示您 AWS 帳戶中 SNS 訂閱的清單。  

```
aws sns list-subscriptions
```
輸出：  

```
{
    "Subscriptions": [
        {
            "Owner": "123456789012",
            "Endpoint": "my-email@example.com",
            "Protocol": "email",
            "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic",
            "SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f"
        }
    ]
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [ListSubscriptions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/list-subscriptions.html)。

### `list-tags-for-resource`
<a name="sns_ListTagsForResource_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `list-tags-for-resource`。

**AWS CLI**  
**列出主題的標籤**  
下列 `list-tags-for-resource` 範例會列出指定 Amazon SNS 主題的標籤。  

```
aws sns list-tags-for-resource \
    --resource-arn arn:aws:sns:us-west-2:123456789012:MyTopic
```
輸出：  

```
{
    "Tags": [
        {
            "Key": "Team",
            "Value": "Alpha"
        }
    ]
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [ListTagsForResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/list-tags-for-resource.html)。

### `list-topics`
<a name="sns_ListTopics_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `list-topics`。

**AWS CLI**  
**列出您的 SNS 主題**  
下列`list-topics`範例列出您 AWS 帳戶中的所有 SNS 主題。  

```
aws sns list-topics
```
輸出：  

```
{
    "Topics": [
        {
            "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic"
        }
    ]
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [ListTopics](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/list-topics.html)。

### `opt-in-phone-number`
<a name="sns_OptInPhoneNumber_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `opt-in-phone-number`。

**AWS CLI**  
**選擇加入簡訊**  
下列 `opt-in-phone-number` 範例會選擇將指定的電話號碼加入接收 SMS 訊息。  

```
aws sns opt-in-phone-number \
    --phone-number +15555550100
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [OptInPhoneNumber](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/opt-in-phone-number.html)。

### `publish`
<a name="sns_Publish_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `publish`。

**AWS CLI**  
**範例 1：將訊息發布至主題**  
下列 `publish` 範例會將指定的訊息發佈到指定的 SNS 主題。訊息來自文字檔案，可讓您包含換行符號。  

```
aws sns publish \
    --topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic" \
    --message file://message.txt
```
`message.txt` 的內容：  

```
Hello World
Second Line
```
輸出：  

```
{
    "MessageId": "123a45b6-7890-12c3-45d6-111122223333"
}
```
**範例 2：將簡訊發布至電話號碼**  
下列 `publish` 範例會將訊息 `Hello world!` 發佈至電話號碼 `+1-555-555-0100`。  

```
aws sns publish \
    --message "Hello world!" \
    --phone-number +1-555-555-0100
```
輸出：  

```
{
    "MessageId": "123a45b6-7890-12c3-45d6-333322221111"
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [Publish](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/publish.html)。

### `put-data-protection-policy`
<a name="sns_PutDataProtectionPolicy_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `put-data-protection-policy`。

**AWS CLI**  
**設定資料保護政策**  
**範例 1：拒絕發布者使用 CreditCardNumber 發布訊息**  
下列 `put-data-protection-policy` 範例會拒絕發布者使用 CreditCardNumber 發布訊息。  

```
aws sns put-data-protection-policy \
    --resource-arn arn:aws:sns:us-east-1:123456789012:mytopic \
    --data-protection-policy "{\"Name\":\"data_protection_policy\",\"Description\":\"Example data protection policy\",\"Version\":\"2021-06-01\",\"Statement\":[{\"DataDirection\":\"Inbound\",\"Principal\":[\"*\"],\"DataIdentifier\":[\"arn:aws:dataprotection::aws:data-identifier/CreditCardNumber\"],\"Operation\":{\"Deny\":{}}}]}"
```
此命令不會產生輸出。  
**範例 2：從檔案載入參數**  
下列 `put-data-protection-policy` 會從檔案載入參數。  

```
aws sns put-data-protection-policy \
    --resource-arn arn:aws:sns:us-west-2:123456789012:MyTopic \
    --data-protection-policy file://policy.json
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [PutDataProtectionPolicy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/put-data-protection-policy.html)。

### `remove-permission`
<a name="sns_RemovePermission_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `remove-permission`。

**AWS CLI**  
**將許可從主題中移除**  
下列 `remove-permission` 範例會將許可 `Publish-Permission` 從指定主題中移除。  

```
aws sns remove-permission \
    --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic \
    --label Publish-Permission
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》中的 [RemovePermission](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/remove-permission.html)。**

### `set-endpoint-attributes`
<a name="sns_SetEndpointAttributes_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `set-endpoint-attributes`。

**AWS CLI**  
**設定端點屬性**  
下列 `set-endpoint-attributes` 範例會停用指定平台應用程式端點。  

```
aws sns set-endpoint-attributes \
    --endpoint-arn arn:aws:sns:us-west-2:123456789012:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234 \
    --attributes Enabled=false
```
輸出：  

```
{
    "Attributes": {
        "Enabled": "false",
        "Token": "EXAMPLE12345..."
    }
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [SetEndpointAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/set-endpoint-attributes.html)。

### `set-platform-application-attributes`
<a name="sns_SetPlatformApplicationAttributes_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `set-platform-application-attributes`。

**AWS CLI**  
**設定平台應用程式屬性**  
下列 `set-platform-application-attributes` 範例會將指定平台應用程式的 `EventDeliveryFailure` 屬性設定為指定 Amazon SNS 主題的 ARN。  

```
aws sns set-platform-application-attributes \
    --platform-application-arn arn:aws:sns:us-west-2:123456789012:app/GCM/MyApplication \
    --attributes EventDeliveryFailure=arn:aws:sns:us-west-2:123456789012:AnotherTopic
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [SetPlatformApplicationAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/set-platform-application-attributes.html)。

### `set-sms-attributes`
<a name="sns_SetSMSAttributes_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `set-sms-attributes`。

**AWS CLI**  
**若要設定簡訊屬性**  
下列 `set-sms-attributes` 範例會將簡訊的預設寄件者 ID 設定為 `MyName`。  

```
aws sns set-sms-attributes \
    --attributes DefaultSenderID=MyName
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [SetSMSAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/set-sms-attributes.html)。

### `set-subscription-attributes`
<a name="sns_SetSubscriptionAttributes_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `set-subscription-attributes`。

**AWS CLI**  
**設定訂閱屬性**  
下列 `set-subscription-attributes` 範例會將 `RawMessageDelivery` 屬性設定為 SQS 訂閱。  

```
aws sns set-subscription-attributes \
    --subscription-arn arn:aws:sns:us-east-1:123456789012:mytopic:f248de18-2cf6-578c-8592-b6f1eaa877dc \
    --attribute-name RawMessageDelivery \
    --attribute-value true
```
此命令不會產生輸出。  
下列 `set-subscription-attributes` 範例會將 `FilterPolicy` 屬性設定為 SQS 訂閱。  

```
aws sns set-subscription-attributes \
    --subscription-arn arn:aws:sns:us-east-1:123456789012:mytopic:f248de18-2cf6-578c-8592-b6f1eaa877dc \
    --attribute-name FilterPolicy \
    --attribute-value "{ \"anyMandatoryKey\": [\"any\", \"of\", \"these\"] }"
```
此命令不會產生輸出。  
下列 `set-subscription-attributes` 範例會從 SQS 訂閱移除 `FilterPolicy` 屬性。  

```
aws sns set-subscription-attributes \
    --subscription-arn arn:aws:sns:us-east-1:123456789012:mytopic:f248de18-2cf6-578c-8592-b6f1eaa877dc \
    --attribute-name FilterPolicy \
    --attribute-value "{}"
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [SetSubscriptionAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/set-subscription-attributes.html)。

### `set-topic-attributes`
<a name="sns_SetTopicAttributes_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `set-topic-attributes`。

**AWS CLI**  
**設定主題的屬性**  
下列 `set-topic-attributes` 範例會設定指定主題的 `DisplayName` 屬性。  

```
aws sns set-topic-attributes \
    --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic \
    --attribute-name DisplayName \
    --attribute-value MyTopicDisplayName
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [SetTopicAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/set-topic-attributes.html)。

### `subscribe`
<a name="sns_Subscribe_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `subscribe`。

**AWS CLI**  
**訂閱主題**  
下列 `subscribe` 命令會將電子郵件地址訂閱至指定的主題。  

```
aws sns subscribe \
    --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic \
    --protocol email \
    --notification-endpoint my-email@example.com
```
輸出：  

```
{
    "SubscriptionArn": "pending confirmation"
}
```
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [Subscribe](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/subscribe.html)。

### `tag-resource`
<a name="sns_TagResource_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `tag-resource`。

**AWS CLI**  
**將標籤新增至主題**  
下列 `tag-resource` 範例會將中繼資料標籤新增到指定的 Amazon SNS 主題。  

```
aws sns tag-resource \
    --resource-arn arn:aws:sns:us-west-2:123456789012:MyTopic \
    --tags Key=Team,Value=Alpha
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [TagResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/tag-resource.html)。

### `unsubscribe`
<a name="sns_Unsubscribe_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `unsubscribe`。

**AWS CLI**  
**取消訂閱主題**  
下列 `unsubscribe` 範例會從主題中刪除指定的訂閱。  

```
aws sns unsubscribe \
    --subscription-arn arn:aws:sns:us-west-2:0123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [Unsubscribe](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/unsubscribe.html)。

### `untag-resource`
<a name="sns_UntagResource_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `untag-resource`。

**AWS CLI**  
**將標籤從主題中移除**  
下列 `untag-resource` 範例會將任何具有指定索引鍵的標籤從指定 Amazon SNS 主題中移除。  

```
aws sns untag-resource \
    --resource-arn arn:aws:sns:us-west-2:123456789012:MyTopic \
    --tag-keys Team
```
此命令不會產生輸出。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [UntagResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/untag-resource.html)。

## 案例
<a name="scenarios"></a>

### 為推播通知建立平台端點
<a name="sns_CreatePlatformEndpoint_cli_2_topic"></a>

下列程式碼範例示範如何為 Amazon SNS 推播通知建立平台端點。

**AWS CLI**  
**建立平台應用程式端點**  
下列 `create-platform-endpoint` 範例會使用指定的字符，為指定的平台應用程式建立端點。  

```
aws sns create-platform-endpoint \
    --platform-application-arn arn:aws:sns:us-west-2:123456789012:app/GCM/MyApplication \
    --token EXAMPLE12345...
```
輸出：  

```
{
      "EndpointArn": "arn:aws:sns:us-west-2:1234567890:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234"
}
```