在 aws lambda 更新过程中请求会发生什么?
What happens to request in the middle of an aws lambda update?
如果我:
- 触发 AWS Lambda deployment/update
- 在步骤 #1 完成之前触发对 AWS Lambda 的请求
请求会直接命中旧的 lambda 吗?会不会出错?
到目前为止,在我的测试中似乎没有 "downtime",它几乎立即将旧的换成新的——尽管对新 lambda 的第一个请求确实必须进行冷启动.
你是对的。 IIRC,每个函数调用都使用一个特定的函数 ARN,它会在您更新函数时发生变化。当您调用该函数时,您使用的是新 ARN,它仅调用新版本。
我相信可以继续使用旧函数,显式使用旧 ARN(尽管您可能无法从 Lambda 控制台执行此操作。)
有关详细信息,请参阅 http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html
现在可以使用最近在 AWS re:Invent 会议上宣布的新流量转移功能,更好地 fine-grained 控制如何在 lambda 函数版本之间处理请求:
如果我:
- 触发 AWS Lambda deployment/update
- 在步骤 #1 完成之前触发对 AWS Lambda 的请求
请求会直接命中旧的 lambda 吗?会不会出错?
到目前为止,在我的测试中似乎没有 "downtime",它几乎立即将旧的换成新的——尽管对新 lambda 的第一个请求确实必须进行冷启动.
你是对的。 IIRC,每个函数调用都使用一个特定的函数 ARN,它会在您更新函数时发生变化。当您调用该函数时,您使用的是新 ARN,它仅调用新版本。
我相信可以继续使用旧函数,显式使用旧 ARN(尽管您可能无法从 Lambda 控制台执行此操作。)
有关详细信息,请参阅 http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html
现在可以使用最近在 AWS re:Invent 会议上宣布的新流量转移功能,更好地 fine-grained 控制如何在 lambda 函数版本之间处理请求: