Lister les abonnés d’une rubrique Amazon SNS à l’aide du AWS kit SDK - Amazon Simple Notification Service

Lister les abonnés d’une rubrique Amazon SNS à l’aide du AWS kit SDK

Les exemples de code suivants montrent comment récupérer la liste des abonnés d’une rubrique Amazon SNS.

.NET
AWS SDK for .NET
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

using System; using System.Collections.Generic; using System.Threading.Tasks; using Amazon.SimpleNotificationService; using Amazon.SimpleNotificationService.Model; /// <summary> /// This example will retrieve a list of the existing Amazon Simple /// Notification Service (Amazon SNS) subscriptions. The example was /// created using the AWS SDK for .NET 3.7 and .NET Core 5.0. /// </summary> public class ListSubscriptions { public static async Task Main() { IAmazonSimpleNotificationService client = new AmazonSimpleNotificationServiceClient(); var subscriptions = await GetSubscriptionsListAsync(client); DisplaySubscriptionList(subscriptions); } /// <summary> /// Gets a list of the existing Amazon SNS subscriptions. /// </summary> /// <param name="client">The initialized Amazon SNS client object used /// to obtain the list of subscriptions.</param> /// <returns>A List containing information about each subscription.</returns> public static async Task<List<Subscription>> GetSubscriptionsListAsync(IAmazonSimpleNotificationService client) { var response = await client.ListSubscriptionsAsync(); return response.Subscriptions; } /// <summary> /// Display a list of Amazon SNS subscription information. /// </summary> /// <param name="subscriptionList">A list containing details for existing /// Amazon SNS subscriptions.</param> public static void DisplaySubscriptionList(List<Subscription> subscriptionList) { foreach (var subscription in subscriptionList) { Console.WriteLine($"Owner: {subscription.Owner}"); Console.WriteLine($"Subscription ARN: {subscription.SubscriptionArn}"); Console.WriteLine($"Topic ARN: {subscription.TopicArn}"); Console.WriteLine($"Endpoint: {subscription.Endpoint}"); Console.WriteLine($"Protocol: {subscription.Protocol}"); Console.WriteLine(); } } }
  • Pour de plus amples informations sur l’API, consultez ListSubscriptions dans AWS SDK for .NET Référence de l’API.

C++
Kit SDK pour C++
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

Aws::SDKOptions options; Aws::InitAPI(options); { Aws::SNS::SNSClient sns; Aws::SNS::Model::ListSubscriptionsRequest ls_req; auto ls_out = sns.ListSubscriptions(ls_req); if (ls_out.IsSuccess()) { std::cout << "Subscriptions list:" << std::endl; for (auto const& subscription : ls_out.GetResult().GetSubscriptions()) { std::cout << " * " << subscription.GetSubscriptionArn() << std::endl; } } else { std::cout << "Error listing subscriptions " << ls_out.GetError().GetMessage() << std::endl; } } Aws::ShutdownAPI(options);
  • Pour de plus amples informations sur l’API, consultez ListSubscriptions dans AWS SDK for C++ Référence de l’API.

Go
Kit SDK for Go V2
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

  • Pour de plus amples informations sur l’API, consultez ListSubscriptions dans AWS SDK for Go Référence de l’API.

Java
Kit SDK pour Java 2.x
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

public static void listSNSSubscriptions( SnsClient snsClient) { try { ListSubscriptionsRequest request = ListSubscriptionsRequest.builder() .build(); ListSubscriptionsResponse result = snsClient.listSubscriptions(request); System.out.println(result.subscriptions()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • Pour de plus amples informations sur l’API, consultez ListSubscriptions dans AWS SDK for Java 2.x Référence de l’API.

JavaScript
Kit SDK pour JavaScript V3
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

Créez le client dans un module séparé et exportez-le.

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 };

Importez le kit SDK et les modules client et appelez l’API.

// Import required AWS SDK clients and commands for Node.js import {ListSubscriptionsByTopicCommand } 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 ListSubscriptionsByTopicCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();
Kotlin
Kit SDK pour Kotlin
Note

Ceci est une documentation préliminaire pour une fonctionnalité en version de prévisualisation. Elle est susceptible d’être modifiée.

Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

suspend fun listSNSSubscriptions() { SnsClient { region = "us-east-1" }.use { snsClient -> val response = snsClient.listSubscriptions(ListSubscriptionsRequest {}) response.subscriptions?.forEach { sub -> println("Sub ARN is ${sub.subscriptionArn}") println("Sub protocol is ${sub.protocol}") } } }
  • Pour plus d’informations sur l’API, consultez la section ListSubscriptions de la référence du kit SDK AWS pour l’API Kotlin.

PHP
Kit SDK pour PHP
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

require 'vendor/autoload.php'; use Aws\Sns\SnsClient; use Aws\Exception\AwsException; /** * Returns a list of Amazon SNS subscriptions in the requested region. * * 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' ]); try { $result = $SnSclient->listSubscriptions([ ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
  • Pour de plus amples informations sur l’API, consultez ListSubscriptions dans AWS SDK for PHP Référence de l’API.

Python
Kit SDK pour Python (Boto3)
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez 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 list_subscriptions(self, topic=None): """ Lists subscriptions for the current account, optionally limited to a specific topic. :param topic: When specified, only subscriptions to this topic are returned. :return: An iterator that yields the subscriptions. """ try: if topic is None: subs_iter = self.sns_resource.subscriptions.all() else: subs_iter = topic.subscriptions.all() logger.info("Got subscriptions.") except ClientError: logger.exception("Couldn't get subscriptions.") raise else: return subs_iter
  • Pour de plus amples informations sur l’API, consultez ListSubscriptions dans AWS Référence de l’API du kit SDK for Python (Boto3).

Ruby
Kit SDK pour Ruby
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

require 'aws-sdk-sns' # v2: require 'aws-sdk' def show_subscriptions?(sns_client, topic_arn) topic = sns_client.topic(topic_arn) topic.subscriptions.each do |s| puts s.attributes['Endpoint'] end rescue StandardError => e puts "Error while sending the message: #{e.message}" end def run_me topic_arn = 'SNS_TOPIC_ARN' region = 'REGION' sns_client = Aws::SNS::Resource.new(region: region) puts "Listing subscriptions to the topic." if show_subscriptions?(sns_client, topic_arn) else puts 'There was an error. Stopping program.' exit 1 end end run_me if $PROGRAM_NAME == __FILE__

Pour obtenir la liste complète des guides de développement AWS SDK et des exemples de code, consultez Utilisation d'Amazon SNS avec un kit SDK AWS. Cette rubrique comprend également des informations sur le démarrage et sur les versions précédentes du kit de développement logiciel (SDK).