具有ID的API不包含路径/ *的资源,该资源的ANY方法具有集成LAMBDA

Vma*_*man 9 amazon-web-services aws-cli aws-lambda asp.net-core-webapi aws-serverless

.net核心无服务器Web api我正在尝试与lambda和api网关进行代理集成,而AWS控制台一切正常

但是我在尝试与cli集成时遇到了aws cli命令的问题,但lambda没有正确集成

aws apigateway create-resource --rest-api-id id --parent-id id --path-part {proxy+}


aws apigateway put-method --rest-api-id id --resource-id id --http-method ANY --authorization-type "NONE" 


aws apigateway put-integration --rest-api-id id --resource-id id --http-method ANY --type HTTP_PROXY --integration-http-method ANY --uri arn:aws:apigateway:us-east-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-east-2:account_id:function:helloworld/invocations 


aws lambda add-permission --function-name helloworld --action lambda:InvokeFunction --principal apigateway.amazonaws.com --source-arn arn:aws:execute-api:us-east-2:account_id:apiid/*/*/* --statement-id 12345678
Run Code Online (Sandbox Code Playgroud)

Sar*_*ain 5

您的命令有两个问题 -

不正确

aws apigateway create-resource --rest-api-id id --parent-id id --path-part {proxy+}
Run Code Online (Sandbox Code Playgroud)

正确:注意双引号

aws apigateway create-resource --rest-api-id id --parent-id id --path-part "{proxy+}"
Run Code Online (Sandbox Code Playgroud)

不正确

aws apigateway put-integration \
    --rest-api-id id \
    --resource-id id \
    --http-method ANY \
    --type HTTP_PROXY \
    --integration-http-method ANY \
    --uri arn:aws:apigateway:us-east-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-east-2:account_id:function:helloworld/invocations 
Run Code Online (Sandbox Code Playgroud)

正确的

  • 对于 Lambda 代理集成,类型应为 AWS_PROXY。

  • 对于 Lambda 代理集成,integration-http-method 应始终为 POST,即使 http 方法是 GET、ANY 或其他任何方法。

aws apigateway put-integration \
    --rest-api-id id \
    --resource-id id \
    --http-method ANY \
    --type AWS_PROXY \
    --integration-http-method POST \
    --uri arn:aws:apigateway:us-east-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-east-2:account_id:function:helloworld/invocations
Run Code Online (Sandbox Code Playgroud)

  • 完全不明白。共享的网站链接也不起作用 (9认同)