使用别名的流量转移

默认情况下,别名指向单个 Lambda 函数版本。在更新别名以指向不同的函数版本时,传入请求流量将立即指向更新的版本。这会导致该别名出现新版本引入的任何潜在的不稳定性问题。要最大限度降低这种影响,您可以实施 Lambda 别名的 routing-config 参数以允许指向 Lambda 函数的两个不同版本,并指示发送到每个版本的传入流量百分比。

例如,您可以指定在分析生产环境就绪性时仅将 2% 传入流量路由到新版本,而将其余 98% 路由到原始版本。随着新版本的不断成熟,您可以根据需要逐渐更新比率,直到确定新版本是稳定的。然后,您可以更新别名以将所有流量路由到新版本。

您可以将别名最多指向两个 Lambda 函数版本。此外:

  • 两个版本必须具有相同的 IAM 执行角色。

  • 两个版本必须具有相同的 AWS Lambda 函数死信队列 配置,或没有 DLQ 配置。

  • 在将别名指向多个版本时,别名不能指向 $LATEST

使用别名的流量转移 (CLI)
要配置别名以使用 CreateAlias 操作根据权重在两个函数版本之间转移流量,您需要配置 routing-config 参数。以下示例将别名指向两个不同的 Lambda 函数版本,版本 2 接收 2% 调用流量,其余 98% 调用版本 1。

aws lambda create-alias --name alias name --function-name function-name \ --function-version 1
--routing-config AdditionalVersionWeights={"2"=0.02}
您可以使用 UpdateAlias 操作更新新版本 (版本 2) 的传入流量百分比。例如,您可以将新版本的调用流量提高到 5%,如下所示。

aws lambda update-alias --name alias name --function-name function-name \
--routing-config AdditionalVersionWeights={"2"=0.05}
要将所有流量路由到版本 2,请再次使用 UpdateAlias 操作更改 function-version 属性以指向版本 2。在相同的命令中,重置路由配置。

aws lambda update-alias --name alias name --function-name function-name \ 
--function-version 2 --routing-config AdditionalVersionWeights={}

猜你喜欢

转载自www.cnblogs.com/cloudrivers/p/11620964.html