【问题标题】:Using AWS api gateway, how to identify which apis are configured using Lambda proxy integration or Lambda non-proxy (custom) integration使用 AWS api 网关,如何识别使用 Lambda 代理集成或 Lambda 非代理(自定义)集成配置了哪些 api
【发布时间】:2020-07-22 01:48:02
【问题描述】:
我在 AWS API 网关中配置了 API(很少有 lambda 集成,很少有 lambda 代理集成)。
我们决定只使用 lambda 代理集成,因为它易于部署和维护。已使用“Swagger + API Gateway Extensions”导出 json 文件。
如何识别哪些端点使用 json 文件中的 lambda 集成。
我们是否必须在 API Gateway UI 中手动打开每个端点并检查它是否启用了 lambda 代理或有更好的识别方法?
谢谢。
【问题讨论】:
标签:
amazon-web-services
aws-lambda
aws-api-gateway
【解决方案1】:
如果您查看带有自定义扩展名的 Swagger 文件,每个端点/方法都应该有一个名为 x-amazon-apigateway-integration 的属性。在其下方将有另一个名为type 的属性。
没有 Lambda 代理集成的端点的值将是 aws,而带有代理集成的 lambda 将是 aws_proxy
paths:
# This is not a lambda proxy integration
/v1/noproxy:
get:
produces:
- "application/json"
responses: {}
x-amazon-apigateway-integration:
uri: "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:****:function:***/invocations"
responses:
default:
statusCode: "200"
passthroughBehavior: "when_no_match"
httpMethod: "POST"
contentHandling: "CONVERT_TO_TEXT"
type: "aws"
# This is a lambda proxy integration
/v1/myproxyintegration:
post:
responses: {}
security:
- sigv4: []
x-amazon-apigateway-integration:
uri: "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:*****:function:***/invocations"
passthroughBehavior: "when_no_match"
httpMethod: "POST"
type: "aws_proxy"