0

J'essaie de m'abonner à un sujet SNS avec une fonction lambda comme point de terminaison.Abonnement à un sujet SNS avec lambda comme point de terminaison

En essayant via la console AWS, cela fonctionne parfaitement bien. Un abonnement est ajouté dans SNS-> Abonnements qui à son tour ajoute également un déclencheur à la fonction lambda dans Lambda-> Fonctions -> [nom_fonction] -> Déclencheurs

En essayant la même chose via boto3 ou AWS cli, il ajoute de nouvelles abonnement, mais aucun déclencheur n'est ajouté dans Lambda-> Fonctions -> [nom_fonction] -> Déclencheurs. Par conséquent, la fonction lambda n'est pas déclenchée pour ce sujet SNS.

import boto3 
client = boto3.client('sns') 
sns_topic_arn = '<sns_topic_arn>' 
lambda_fn_arn = '<lambda_fn_arn>' 

response = client.subscribe(TopicArn=sns_topic_arn,Protocol='lambda', 
Endpoint=lambda_fn_arn) 

J'ai vérifié que sns_topic_arn et lambda_fn_arn sont corrects. Ai-je raté quelque chose?

Répondre

0
  1. Est-ce que le point final lambda appelle l'action ConfirmSubscription avec le jeton du message de confirmation? Notez également que ces jetons de confirmation sont temporaires et uniquement valables pendant trois jours. Êtes-vous les rafraîchir?

  2. Pouvez-vous vérifier la réponse de l'API d'abonnement et voir si la réponse est valide et qu'elle a un SubscriptionArn?

  3. De même, avez-vous ajouté les autorisations suffisantes via l'API add_permission du client boto3 afin qu'il puisse déclencher lambda?

Référence: http://boto3.readthedocs.io/en/latest/reference/services/sns.html#SNS.Client.subscribe pour la documentation de l'API et d'autres détails

+0

Je dois admettre que je ne sais pas grand-chose à propos de SNS ou lambda. J'essaie juste de suivre docs, et de tirer quelque chose ensemble. 1. J'essaie d'utiliser confirm_subscription dans boto3, mais je n'arrive pas à savoir où je recevrai le jeton temporaire envoyé à la fonction lambda. 2. J'ai vérifié la réponse de l'API d'abonnement, c'est valide. 3. Comment ajouter des autorisations suffisantes. Boto3 docs ne parle pas beaucoup de cette API. –

+0

Problème avec autorisation. http://boto3.readthedocs.io/en/latest/reference/services/lambda.html#Lambda.Client.add_permission Ceci l'a corrigé. –

+0

Génial. Merci de confirmer. – Karthikeyan