问题描述
尝试从运行 Python 程序的 AWS EC2 实例调用 AWS Lambda。 EC2 实例和 lambda 都在同一个 VPC 上。
from botocore.config import Config
adv_client_config = Config(read_timeout=60,connect_timeout=60,retries={'max_attempts': 0})
self.client = boto3.client(
'lambda',region_name='us-east-1',config=adv_client_config
)
response = self.client.invoke(
FunctionName=function_name,InvocationType=invoke_type,Payload=json.dumps(request)
)
InvocationType 是“RequestResponse”。仅当 'max_attempts' 设置为 0 时才会看到此行为。如果将其设置为某个值,则不会看到此行为。
解决方法
您的 lambda 需要很长时间才能冷启动。您可以使用 Provisioned Concurrency 保持温暖。您需要弄清楚为什么您的 lambda 从冷启动启动需要花费如此多的时间,以及您是否可以对此采取任何措施。