【发布时间】:2021-10-29 23:47:47
【问题描述】:
我的 lambda 在尝试连接到 SQS 时超时。 Lambda 具有允许其连接到 SQS 的角色,但它位于 VPC 和子网内。有什么办法可以解决这个问题?
我在日志中看到了这个错误:
[INFO] 2019-10-01T14:29:58.303Z e8ad5b4e-119a-48c1-b320-1d855c4efb22 Getting SQS queue url from <some_sqs_queue>...
14:30:16
[CRITICAL] 2019-10-01T14:30:16.743Z e8ad5b4e-119a-48c1-b320-1d855c4efb22 ## Transmission Error Connect timeout on endpoint URL: "https://us-west-2.queue.amazonaws.com/"
这是在本地工作但不能在 lambda 上运行的相关代码:
sqs = boto3.client(
'sqs', # region_name="us-west-2",
aws_access_key_id=credentials.access_key,
aws_secret_access_key=credentials.secret_key,
aws_session_token=credentials.token,
config=Config(connect_timeout=6, read_timeout=10, retries={'max_attempts': 2})
)
和
try:
logger.info(f"Getting SQS queue url from {sqs_queue}...")
queue_url = sqs.get_queue_url(QueueName=sqs_queue)['QueueUrl']
# iterate over entries in batches of 10
for batch in [entries[index:index + sqs_batch_limit] for index in range(0, len(entries), sqs_batch_limit)]:
logger.info(f"Sending batch of {len(batch)} records to sqs...")
sqs.send_message_batch(
QueueUrl=queue_url,
Entries=batch
)
logger.info("Sent batch of records to sqs successful")
它甚至没有得到sqs_queue_url,但它在本地工作。此日志传输错误连接错误的可能原因是什么?
【问题讨论】:
-
我之前遇到过问题,因为资源在一个区域中,而在另一个区域中起作用
-
这能回答你的问题吗? AWS Lambda connection to SQS timed out
标签: amazon-web-services aws-lambda amazon-sqs