1
AWS LambdaのPython APIを使用してSQSメッセージに書き込もうとしていますが、タイムアウトを試すものは何もありません。失敗)。私はその役割のためにSQSフルアクセスを設定しました。ファンクションログが適切な場所に届いていますが、最後の行にはAWS Lambda Python APIを使用したAWS SQSキューへのメッセージの送信
Starting new HTTPS connection (1): eu-west-1.queue.amazonaws.com
がタイムアウトする前に表示されます。 AWSコンソール内のテストクライアントを使用してテストしています。
ハンドラのコードは次のとおりです。
import boto3
import logging
import os
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
QUEUE_NAME = os.getenv("QUEUE_NAME")
SQS = boto3.client("sqs")
def getQueueURL():
"""Retrieve the URL for the configured queue name"""
q = SQS.get_queue_url(QueueName=QUEUE_NAME).get('QueueUrl')
logger.debug("Queue URL is %s", QUEUE_URL)
return q
def record(event, context):
"""The lambda handler"""
logger.debug("Recording with event %s", event)
data = event.get('data')
try:
logger.debug("Recording %s", data)
u = getQueueURL()
logging.debug("Got queue URL %s", u)
resp = SQS.send_message(QueueUrl=u, MessageBody=data)
logger.debug("Send result: %s", resp)
except Exception as e:
raise Exception("Could not record link! %s" % e)
常にキューのURLを取得する上でタイムアウトするようです。なぜこれがあり、どのようにして実際にそれが起こるのを防ぐことができるので、キューに書き込むことができますか?
ラムダ関数をVPC内に配置しましたか? –
正確に機能したのは? VPCには役割がないので、あなたが何を言っているのかは分かりません。 –
ラムダ関数へのVPC割り当てを削除しました。混乱させて申し訳ありません。 –