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)
您的命令有两个问题 -
不正确
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)
| 归档时间: |
|
| 查看次数: |
1099 次 |
| 最近记录: |