Amazon SNS サブスクリプションおよびトピックを削除する - Amazon Simple Notification Service

Amazon SNS サブスクリプションおよびトピックを削除する

Amazon SNS トピックからサブスクリプションを削除することも、トピック全体を削除することもできます。確認待ちのサブスクリプションは削除できないことに注意してください。3 日後、Amazon SNS は未確認のサブスクリプションを自動的に削除します。

AWS Management Console を使用して Amazon SNS サブスクリプションとトピックを削除するには

AWS Management Console を使用してサブスクリプションを削除するには

  1. Amazon SNS コンソールにサインインします。

  2. 左のナビゲーションペインで、[サブスクリプション] を選択します。

  3. [サブスクリプション] ページで、確認済みステータスのサブスクリプションを選択してから、[削除] を選択します。

  4. [サブネットの削除] ダイアログボックスで、[削除] を選択します。

    コンソールはサブスクリプションを削除します。

トピックを削除すると、Amazon SNS はそのトピックに関連付けられているサブスクリプションを削除します。

AWS Management Console を使用してトピックを削除するには

  1. Amazon SNS コンソールにサインインします。

  2. 左のナビゲーションペインで、[トピック] を選択します。

  3. [トピック] ページでトピックを選択し、[編集] を選択します。

  4. [削除] ダイアログボックスに「delete me」と入力し、[削除] を選択します。

    コンソールがトピックを削除します。

AWS SDK を使用してサブスクリプションとトピックを削除するには

AWS SDK を使用するには、認証情報を使用して設定する必要があります。詳細については、『AWS SDK とツールのリファレンスガイド』の「共有設定ファイルと認証情報ファイル」を参照してください。

次のコード例は、Amazon SNS トピックとそのトピックに対するすべてのサブスクリプションを削除する方法を示しています。

.NET
AWS SDK for .NET
ヒント

この例を設定および実行する方法については、「GitHub」を参照してください。

using System; using System.Threading.Tasks; using Amazon.SimpleNotificationService; /// <summary> /// This example deletes an existing Amazon Simple Notification Service /// (Amazon SNS) topic. The example was created using the AWS SDK for .NET /// version 3.7 and .NET Core 5.0. /// </summary> public class DeleteSNSTopic { public static async Task Main() { string topicArn = "arn:aws:sns:us-east-2:704825161248:ExampleSNSTopic"; IAmazonSimpleNotificationService client = new AmazonSimpleNotificationServiceClient(); var response = await client.DeleteTopicAsync(topicArn); } }
  • API の詳細については、AWS SDK for .NET API リファレンスの「DeleteTopic」を参照してください。

C++
SDK for C++
ヒント

この例を設定および実行する方法については、「GitHub」を参照してください。

Aws::SDKOptions options; Aws::InitAPI(options); { Aws::String topic_arn = argv[1]; Aws::SNS::SNSClient sns; Aws::SNS::Model::DeleteTopicRequest dt_req; dt_req.SetTopicArn(topic_arn); auto dt_out = sns.DeleteTopic(dt_req); if (dt_out.IsSuccess()) { std::cout << "Successfully deleted topic " << topic_arn << std::endl; } else { std::cout << "Error deleting topic " << topic_arn << ":" << dt_out.GetError().GetMessage() << std::endl; } } Aws::ShutdownAPI(options);
  • API の詳細については、AWS SDK for C++ API リファレンスの「DeleteTopic」を参照してください。

Java
SDK for Java 2.x
ヒント

この例を設定および実行する方法については、「GitHub」を参照してください。

public static void deleteSNSTopic(SnsClient snsClient, String topicArn ) { try { DeleteTopicRequest request = DeleteTopicRequest.builder() .topicArn(topicArn) .build(); DeleteTopicResponse result = snsClient.deleteTopic(request); System.out.println("\n\nStatus was " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • API の詳細については、AWS SDK for Java 2.x API リファレンスの「DeleteTopic」を参照してください。

JavaScript
SDK for JavaScript V3
ヒント

この例を設定および実行する方法については、「GitHub」を参照してください。

別のモジュールでクライアントを作成し、エクスポートします。

import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };

SDK モジュールとクライアントモジュールをインポートし、API を呼び出します。

// Load the AWS SDK for Node.js // Import required AWS SDK clients and commands for Node.js import {DeleteTopicCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { TopicArn: "TOPIC_ARN" }; //TOPIC_ARN const run = async () => { try { const data = await snsClient.send(new DeleteTopicCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();
Kotlin
SDK for Kotlin
注記

これはプレビューリリースの機能に関するプレリリースドキュメントです。このドキュメントは変更される可能性があります。

ヒント

この例を設定および実行する方法については、「GitHub」を参照してください。

suspend fun deleteSNSTopic(topicArnVal: String) { val request = DeleteTopicRequest { topicArn = topicArnVal } SnsClient { region = "us-east-1" }.use { snsClient -> snsClient.deleteTopic(request) println("$topicArnVal was successfully deleted.") } }
  • API の詳細については、AWS SDK for Kotlin API リファレンスの「DeleteTopic」を参照してください。

PHP
SDK for PHP
ヒント

この例を設定および実行する方法については、「GitHub」を参照してください。

require 'vendor/autoload.php'; use Aws\Sns\SnsClient; use Aws\Exception\AwsException; /** * Deletes a SNS topic and all its subscriptions. * * This code expects that you have AWS credentials set up per: * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html */ $SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->deleteTopic([ 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
  • API の詳細については、AWS SDK for PHP API リファレンスの「DeleteTopic」を参照してください。

Python
SDK for Python (Boto3)
ヒント

この例を設定および実行する方法については、「GitHub」を参照してください。

class SnsWrapper: """Encapsulates Amazon SNS topic and subscription functions.""" def __init__(self, sns_resource): """ :param sns_resource: A Boto3 Amazon SNS resource. """ self.sns_resource = sns_resource def delete_topic(topic): """ Deletes a topic. All subscriptions to the topic are also deleted. """ try: topic.delete() logger.info("Deleted topic %s.", topic.arn) except ClientError: logger.exception("Couldn't delete topic %s.", topic.arn) raise
  • API の詳細については、AWS SDK for Python (Boto3) API リファレンスの「DeleteTopic」を参照してください。