我有AWS Lambda函数,我调用它通过REST API调用AWS API Gateway . 对于Lambda函数,我配置了两个带版本控制的别名 - QA和Prod .
API网关配置了Lambda代理集成请求 . 我知道AWS API Gateway阶段功能,我创建了两个阶段(分别是QA和Prod),但我没有在阶段配置中看到Lambda别名的任何设置 .
如何为QA阶段指定QA Lambda别名,为Prod API阶段指定Prod Lambda别名?
在API网关中的集成请求中,您可以将别名添加到ARN的末尾,以确保您的 endpoints 指向正确的别名 . 像这样的东西 arn:aws:lambda:region:account-id:function:function-name:alias-name
arn:aws:lambda:region:account-id:function:function-name:alias-name
您无法告诉API网关阶段始终使用特定的Lambda别名,并且具有多个指向不同别名的网关阶段 .
每次需要部署到Gateway阶段时,您必须确保将未部署的API网关 endpoints 配置为在部署到与该环境匹配的阶段之前指向正确的Lambda别名 .
这很难维护,因此我建议使用无服务器框架或其他框架将您的两个不同阶段视为完全不同的资源 .
有用的资源:
https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda
https://serverless.com/framework/docs/providers/aws/guide/intro/
在您的集成请求中,您将看到Lambda函数 - 单击它以编辑并添加:QA或:在它之后生成并点击复选标记,我认为这样做 .
例如:myLambda:Prod
2 回答
在API网关中的集成请求中,您可以将别名添加到ARN的末尾,以确保您的 endpoints 指向正确的别名 . 像这样的东西
arn:aws:lambda:region:account-id:function:function-name:alias-name
您无法告诉API网关阶段始终使用特定的Lambda别名,并且具有多个指向不同别名的网关阶段 .
每次需要部署到Gateway阶段时,您必须确保将未部署的API网关 endpoints 配置为在部署到与该环境匹配的阶段之前指向正确的Lambda别名 .
这很难维护,因此我建议使用无服务器框架或其他框架将您的两个不同阶段视为完全不同的资源 .
有用的资源:
https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda
https://serverless.com/framework/docs/providers/aws/guide/intro/
在您的集成请求中,您将看到Lambda函数 - 单击它以编辑并添加:QA或:在它之后生成并点击复选标记,我认为这样做 .
例如:myLambda:Prod