L'option endpoint_url est requise lors du déploiement de Lambda sur un VPC sur AWS et de l'utilisation de boto3 SQS via un point de terminaison.
import boto3
sqs = boto3.client("sqs", endpoint_url="https://sqs.ap-northeast-1.amazonaws.com")
sqs.send_message(...)
Sans cette option, vous ne pourrez pas vous connecter et expirera.
Notez que j'ai été gâché lors du déploiement de Lamba sur un VPC sur AWS et de l'utilisation de SQS avec une connexion privée. Pour plus de détails, veuillez consulter le site suivant. Quand je l'ai essayé, le symptôme ne s'est produit que lors de l'utilisation de boto3 sur Lambda.
Dans mes conditions, le boto3 de Lambda était la version 1.14.48. De plus, la version que j'ai essayée avec EC2 était la 1.16.8, mais le même phénomène s'est produit ici aussi.
Selon l'article en 1., l'AWS CLI (y compris boto3 pour voir ce phénomène) dit que ** même si QueueUrl est spécifié lors de la connexion à SQS, il essaiera de se connecter au point de terminaison hérité **. Cela semble être un problème. Lorsque je crée un point de terminaison SQS dans un VPC, sqs.ap-northeast-1.amazonaws.com (point de terminaison actuel) se voit attribuer une adresse IP privée, mais ap-northeast-1.queue.amazonaws.com (extrémité héritée) Point) reste l'adresse IP publique. Dans cet état, lorsque j'essaye d'utiliser SQS avec boto3, il semble que la cause soit que j'ai essayé d'utiliser un point de terminaison hérité lors de la connexion, mais je n'ai pas pu me connecter et j'ai expiré.
La solution utilisant Session est présentée dans 2. GitHub, mais si vous spécifiez le point de terminaison actuel dans l'option ʻendpoint_url comme ci-dessus lors de l'exécution de
boto3.client () `, le problème est résolu.
Pour référence, le code de la solution par Session dans l'article GitHub est ci-dessous.
import boto3
session = boto3.Session()
sqs_client = session.client(
service_name='sqs',
endpoint_url='https://sqs.ap-northeast-1.amazonaws.com',
)
sqs_client.send_message(...)
... Je suis resté coincé pendant environ 2 heures.
Recommended Posts