通过 CLI 设置 AWS API Gateway 时,如何确定 Lambda 的路径或操作?

Vih*_*ung 5 aws-cli aws-lambda aws-api-gateway

我在 AWS Lambda 中部署了 lambda 函数 (Java)。

我已经通过 API Gateway 上的 UI 控制台设置了 API Gateway 资源和方法。

我正在尝试通过命令行设置 API 网关,例如

aws apigateway put-integration --rest-api-id <rest-api-id> \
  --resource-id <resource-id> \
  --http-method GET \
  --type AWS \
  --integration-http-method POST \
  --uri <lambda-arn> \
  --request-templates file://mapping.json
Run Code Online (Sandbox Code Playgroud)

注意,<lambda-arn>是 Lambda 的 ARN。

我收到表格错误

An error occurred (BadRequestException) when calling the PutIntegration operation: 
AWS ARN for integration must contain path or action
Run Code Online (Sandbox Code Playgroud)

我需要提供什么路径行动

Vih*_*ung 15

看起来路径应该是这样的形式

arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/<lambda-arn>/invocations 
Run Code Online (Sandbox Code Playgroud)

但为什么会出现这种情况对我来说绝对是个谜。

这里的文档明确指出

uri 参数是函数调用操作的 ARN。

2015 年 3 月 31 日是谁的生日?

  • `uri` 是 Lambda 函数的 [Invoke API](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html) 操作的 ARN。2015-03-31 是 Lambda API 版本的诞生日期;) (10认同)