Python 为什么Lambda突然抛出了一个;“请求已过期”;错误?

Python 为什么Lambda突然抛出了一个;“请求已过期”;错误?,python,amazon-web-services,aws-lambda,boto3,Python,Amazon Web Services,Aws Lambda,Boto3,My Lambda函数通过boto3的create_instances模块创建EC2服务器 我从早上就开始触发这个Lambda,它创建的实例非常好。但突然间,我不断地犯下一个奇怪的错误: { "stackTrace": [ [ "/var/task/processing.py", 54, "lambda_handler", "KeyName=keyname, SubnetId='subnet-<>', SecurityGro

My Lambda函数通过boto3的
create_instances
模块创建EC2服务器

我从早上就开始触发这个Lambda,它创建的实例非常好。但突然间,我不断地犯下一个奇怪的错误:

{
  "stackTrace": [
    [
      "/var/task/processing.py",
      54,
      "lambda_handler",
      "KeyName=keyname, SubnetId='subnet-<>', SecurityGroupIds=['sg-<>'])"
    ],
    [
      "/var/runtime/boto3/resources/factory.py",
      520,
      "do_action",
      "response = action(self, *args, **kwargs)"
    ],
    [
      "/var/runtime/boto3/resources/action.py",
      83,
      "__call__",
      "response = getattr(parent.meta.client, operation_name)(**params)"
    ],
    [
      "/var/task/botocore/client.py",
      251,
      "_api_call",
      "return self._make_api_call(operation_name, kwargs)"
    ],
    [
      "/var/task/botocore/client.py",
      537,
      "_make_api_call",
      "raise ClientError(parsed_response, operation_name)"
    ]
  ],
  "errorType": "ClientError",
  "errorMessage": "An error occurred (RequestExpired) when calling the RunInstances operation: Request has expired."
}
{
“stackTrace”:[
[
“/var/task/processing.py”,
54,
“lambda_handler”,
KeyName=KeyName,SubnetId='subnet-',SecurityGroupIds=['sg-'))
],
[
“/var/runtime/boto3/resources/factory.py”,
520,
“采取行动”,
“响应=动作(自我,*args,**kwargs)”
],
[
“/var/runtime/boto3/resources/action.py”,
83,
“\uuuuuuuuuu调用”,
response=getattr(parent.meta.client,操作名称)(**参数)
],
[
“/var/task/botocore/client.py”,
251,
“_api_调用”,
返回self.\u make\u api\u调用(操作名称,kwargs)
],
[
“/var/task/botocore/client.py”,
537,
“_make_api_call”,
raise ClientError(已解析的\u响应、操作\u名称)
]
],
“errorType”:“ClientError”,
“errorMessage”:“调用RunInstances操作时发生错误(RequestExpired):请求已过期。”
}
发生了什么事?很肯定这不是代码错误,因为同一个代码井从早上开始运行。

问题可能是Anup在中提到的15分钟延迟

我通过重新上传部署包并重新测试解决了这个问题。成功了!不过这是一个很奇怪的黑客

[非常乐意接受一个能够解释Lambda/AWS这种奇怪行为背后原因的答案]

问题可能是Anup在年中提到的15分钟延迟

我通过重新上传部署包并重新测试解决了这个问题。成功了!不过这是一个很奇怪的黑客


[非常乐意接受能够解释Lambda/AWS这种奇怪行为背后原因的答案]

在我的情况下,发生这种情况是因为我的
AWS\u session\u token
过期,我必须更换所有凭证详细信息:

  • aws\u访问\u密钥\u id
  • aws\u密码\u访问\u密钥
  • aws\u会话\u令牌

  • 替换所有详细信息后,错误不存在。

    在我的情况下,发生这种情况是因为我的
    aws\u会话\u令牌已过期,我必须替换所有凭据详细信息:

  • aws\u访问\u密钥\u id
  • aws\u密码\u访问\u密钥
  • aws\u会话\u令牌

  • 替换所有详细信息后,错误不存在。

    当连接到aws的凭据不存在或已过期时,会发生此错误。 请尝试更新您的凭据/密钥;无论您使用何种方式授权连接到AWS,然后应删除此错误

    这对我很有用:
    我更新了我的
    ~/.aws/credentials
    文件,它发挥了神奇的作用。

    当您连接到aws的凭据不存在或已过期时,会发生此错误。 请尝试更新您的凭据/密钥;无论您使用何种方式授权连接到AWS,然后应删除此错误

    这对我很有用:
    我更新了
    ~/.aws/credentials
    文件,它发挥了神奇的作用。

    尝试手动启动相同数量、相同大小和相同区域的实例,看看会发生什么。看看极限,也许你达到了极限,或者,如果您的Lambda在VPC中运行,它可能是VPC网络堆栈的任何一部分。在google我发现在某些情况下会出现此类错误:1)请求到达服务的时间在请求上的日期戳之后超过15分钟,或在请求过期日期之后超过15分钟(例如对于预签名的URL),或者请求上的日期戳在未来超过15分钟。2) 如果您使用的是临时安全凭据,如果凭据已过期,也可能发生此错误。@Raf从Lambda外部运行了确切的代码。它创建了一个实例。但是,Lambda仍然抛出这个错误。@Anup temp。凭证有一小时的可视性,对吗?我的代码运行不超过3分钟。这些信条是怎么来的。你快要死了吗?听起来很混乱:/lambda的执行时间限制是5分钟,所以这可能就是问题所在。另外,当您启动实例时,您的请求可能会等待,因为所需的机器体系结构不可用。另外,调用lambda是同步或异步操作,oyu可以共享您的代码片段吗?您正在启动多少实例?尝试手动启动相同数量、相同大小和相同区域的实例,看看会发生什么。看看极限,也许你达到了极限,或者,如果您的Lambda在VPC中运行,它可能是VPC网络堆栈的任何一部分。在google我发现在某些情况下会出现此类错误:1)请求到达服务的时间在请求上的日期戳之后超过15分钟,或在请求过期日期之后超过15分钟(例如对于预签名的URL),或者请求上的日期戳在未来超过15分钟。2) 如果您使用的是临时安全凭据,如果凭据已过期,也可能发生此错误。@Raf从Lambda外部运行了确切的代码。它创建了一个实例。但是,Lambda仍然抛出这个错误。@Anup temp。凭证有一小时的可视性,对吗?我的代码运行不超过3分钟。这些信条是怎么来的。你快要死了吗?听起来很混乱:/lambda的执行时间限制是5分钟,所以这可能就是问题所在。另外,当您启动实例时,您的请求可能会等待,因为所需的机器体系结构不可用。另外,调用lambda是同步或异步操作,oyu可以共享您的代码片段吗?你有多少个例子