Abonner une fonction Lambda pour recevoir des notifications d’une rubrique Amazon SNS à l’aide d’un AWS kit SDK - Amazon Simple Notification Service

Abonner une fonction Lambda pour recevoir des notifications d’une rubrique Amazon SNS à l’aide d’un AWS kit SDK

Les exemples de code suivants montrent comment s’abonner à une fonction Lambda afin qu’elle reçoive des notifications d’une rubrique Amazon SNS.

C++
Kit SDK pour C++
Astuce

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

/** * Subscribe an AWS Lambda endpoint to a topic - demonstrates how to initiate a subscription to an Amazon SNS topic with delivery * to an AWS Lambda function. * * NOTE: You must first configure AWS Lambda to run this example. * See https://docs.amazonaws.cn/en_us/lambda/latest/dg/with-sns-example.html for more information. * * <protocol_value> set to "lambda" provides delivery of JSON-encoded message to an AWS Lambda function * (see https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html for available protocols). * <topic_arn_value> can be obtained from run_list_topics executable and includes the "arn:" prefix. * <lambda_function_arn> is the ARN of an AWS Lambda function. */ int main(int argc, char ** argv) { if (argc != 4) { std::cout << "Usage: subscribe_lamda <protocol_value=lambda> <topic_arn_value>" " <lambda_function_arn>" << std::endl; return 1; } Aws::SDKOptions options; Aws::InitAPI(options); { Aws::SNS::SNSClient sns; Aws::String protocol = argv[1]; Aws::String topic_arn = argv[2]; Aws::String endpoint = argv[3]; Aws::SNS::Model::SubscribeRequest s_req; s_req.SetTopicArn(topic_arn); s_req.SetProtocol(protocol); s_req.SetEndpoint(endpoint); auto s_out = sns.Subscribe(s_req); if (s_out.IsSuccess()) { std::cout << "Subscribed successfully " << std::endl; } else { std::cout << "Error while subscribing " << s_out.GetError().GetMessage() << std::endl; } } Aws::ShutdownAPI(options); return 0; }
  • Pour de plus amples informations sur l’API, consultez S’abonner dans AWS SDK for C++ 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 String subLambda(SnsClient snsClient, String topicArn, String lambdaArn) { try { SubscribeRequest request = SubscribeRequest.builder() .protocol("lambda") .endpoint(lambdaArn) .returnSubscriptionArn(true) .topicArn(topicArn) .build(); SubscribeResponse result = snsClient.subscribe(request); return result.subscriptionArn(); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
  • Pour de plus amples informations sur l’API, consultez S’abonner 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 {SubscribeCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { Protocol: "lambda" /* required */, TopicArn: "TOPIC_ARN", //TOPIC_ARN Endpoint: "LAMBDA_FUNCTION_ARN", //LAMBDA_FUNCTION_ARN }; const run = async () => { try { const data = await snsClient.send(new SubscribeCommand(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 subLambda(topicArnVal: String?, lambdaArn: String?) { val request = SubscribeRequest { protocol = "lambda" endpoint = lambdaArn returnSubscriptionArn = true topicArn = topicArnVal } SnsClient { region = "us-east-1" }.use { snsClient -> val result = snsClient.subscribe(request) println(" The subscription Arn is ${result.subscriptionArn}") } }
  • Pour plus d’informations sur l’API, consultez la section S’abonner de la référence du kit SDK AWS pour l’API Kotlin.

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).