HTTP API Gateway设置Lambda别名作为集成目标提示无匹配函数如何解决
HTTP API Gateway集成Lambda别名配置方案
方法1:通过AWS CLI直接配置
这是绕开控制台输入限制最直接的方式,执行以下两步操作即可:
- 调用APIGateway v2的创建集成接口,直接指定Lambda别名的ARN作为集成目标,示例命令如下:
aws apigatewayv2 create-integration \ --api-id <你的HTTP API ID> \ --integration-type AWS_PROXY \ --integration-uri arn:aws:apigateway:<AWS区域>:lambda:path/2015-03-31/functions/<Lambda别名完整ARN>/invocations \ --payload-format-version 2.0
- 为Lambda别名添加API Gateway的调用权限,避免后续调用时报权限错误:
aws lambda add-permission \ --function-name <Lambda别名完整ARN> \ --statement-id apigateway-http-api-invoke-alias \ --action lambda:InvokeFunction \ --principal apigateway.amazonaws.com \ --source-arn arn:aws:execute-api:<AWS区域>:<AWS账号ID>:<HTTP API ID>/*/*/*
方法2:控制台迂回配置(无需使用命令行)
如果不想使用CLI,可以通过控制台修改已有集成配置绕过初始输入的限制:
- 先在集成创建页面,直接选择你的Lambda函数(无需指定版本/别名),完成初步集成的创建
- 进入刚创建的集成详情页面,找到集成URI配置项,点击编辑
- 将URI末尾段的Lambda函数基础ARN,替换为你的Lambda别名完整ARN,保存修改即可生效
补充说明
HTTP API Gateway控制台初始创建集成时的$符号输入限制,仅作用于初始目标选择的输入框,修改集成URI时不会触发该限制,也不会影响后端对别名ARN的识别,配置完成后可直接触发测试验证调用是否正常。
内容的提问来源于stack exchange,提问作者xiaokang lin
相关产品推荐
相关产品推荐

