【发布时间】:2018-07-27 16:00:58
【问题描述】:
我正在尝试从 Lambda Api 网关运行 ECS 任务。但是经常让端点请求超时。我已将默认 Labmda 超时更改为 5 分钟。但有时仍然会出现超时异常。 有没有办法通过 Lambda 运行 ECS 任务而不会超时?
这是来自 Lambda 的用于运行 ECS 任务的核心 python 代码
ecs = boto3.client(
'ecs',
region_name=config.AWS_REGION,
aws_access_key_id=config.AWS_ACCESS_KEY_ID,
aws_secret_access_key=config.AWS_SECRET_ACCESS_KEY
)
request_id = str(uuid.uuid1())
ecs.run_task(
cluster='test-cluster',
taskDefinition='test-task',
startedBy=request_id,
launchType='FARGATE',
overrides={
'containerOverrides': [
{
'name': 'test-container',
'environment': [
{
'name': 'request_id',
'value': request_id
}
]
}
]
},
networkConfiguration={
'awsvpcConfiguration': {
'securityGroups': [
'sg-XXXXXXXX',
],
'subnets': [
'subnet-XXXXXXXX',
'subnet-XXXXXXXX',
'subnet-XXXXXXXX'
],
'assignPublicIp': 'ENABLED'
}
}
)
【问题讨论】:
-
您在哪里看到超时,在 lambda 或 API 网关中?
-
在 API 网关中。我记录了执行时间,发现大部分时间都花在
ecs.run_task方法上。
标签: python boto3 amazon-ecs