- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在以下场景中尝试使用 terraform api_gateway 进行 POC。
path=/demo/user(GET) -> 调用 lamda 函数 (hello)。
path=/demo/user/{id)(put) -> 调用 lamda 函数(测试)。
所以我在这里创建了以下资源
resource "aws_api_gateway_rest_api" "MyDemoAPI" {
name = "MyDemoAPI"
description = "This is my API for demonstration purposes"
}
resource "aws_api_gateway_resource" "MyDemoResource" {
rest_api_id = aws_api_gateway_rest_api.MyDemoAPI.id
parent_id = aws_api_gateway_rest_api.MyDemoAPI.root_resource_id
path_part = "demo"
}
resource "aws_api_gateway_integration" "MyDemoIntegration" {
rest_api_id = aws_api_gateway_rest_api.MyDemoAPI.id
resource_id = aws_api_gateway_resource.MyDemoResource.id
http_method = aws_api_gateway_method.MyDemoMethod.http_method
type = "AWS_PROXY"
uri = "<lambda function arn>/invocation"
}
在 terraform apply 中,它正在/demo 下创建资源
但在这里我如何实现路径?
path=/demo/user(GET) -> 调用 lamda 函数 (hello)。
path=/demo/user/{id)(PUT) -> 调用 lamda 函数(测试)。
任何评论都将受到高度赞赏。
最佳答案
对于/demo/user (GET),您需要在“demo”下创建资源“user”,并添加“user”资源的集成。对于/demo/user/{id} (PUT),您需要在“user”下创建另一个资源“userId”,并添加“userId”资源的集成。
必须使用相应的 Lambda 函数为它们添加 Http 方法和 Lambda 集成。
更新后的代码如下所示。
# root resource
resource "aws_api_gateway_rest_api" "MyDemoAPI" {
name = "MyDemoAPI"
description = "This is my API for demonstration purposes"
}
# demo resource (corresponding to path /demo)
resource "aws_api_gateway_resource" "MyDemoResource" {
rest_api_id = aws_api_gateway_rest_api.MyDemoAPI.id
parent_id = aws_api_gateway_rest_api.MyDemoAPI.root_resource_id
path_part = "demo"
}
# user resource (corresponding to path /demo/user)
resource "aws_api_gateway_resource" "MyDemoUserResource" {
rest_api_id = aws_api_gateway_rest_api.MyDemoAPI.id
parent_id = aws_api_gateway_resource.MyDemoResource.id
path_part = "user"
}
# adding GET method for path /demo/user
resource "aws_api_gateway_method" "MyDemoUserGetMethod" {
rest_api_id = aws_api_gateway_rest_api.MyDemoAPI.id
resource_id = aws_api_gateway_resource.MyDemoUserResource.id
http_method = "GET"
authorization = "NONE"
}
# userId resource (corresponding to path /demo/user/{id})
resource "aws_api_gateway_resource" "MyDemoUserIdResource" {
rest_api_id = aws_api_gateway_rest_api.MyDemoAPI.id
parent_id = aws_api_gateway_resource.MyDemoUserResource.id
path_part = "{id}"
}
# adding PUT method for path /demo/user/{id}
resource "aws_api_gateway_method" "MyDemoUserIdPutMethod" {
rest_api_id = aws_api_gateway_rest_api.MyDemoAPI.id
resource_id = aws_api_gateway_resource.MyDemoUserIdResource.id
http_method = "PUT"
authorization = "NONE"
}
# adding Lambda integration for GET at /demo/user
resource "aws_api_gateway_integration" "MyDemoUserIntegration" {
rest_api_id = aws_api_gateway_rest_api.MyDemoAPI.id
resource_id = aws_api_gateway_resource.MyDemoUserResource.id
http_method = aws_api_gateway_method.MyDemoUserGetMethod.http_method
type = "AWS_PROXY"
uri = "<lambda function arn>/invocation"
}
# adding Lambda integration for PUT at /demo/user/{id}
resource "aws_api_gateway_integration" "MyDemoUserIdIntegration" {
rest_api_id = aws_api_gateway_rest_api.MyDemoAPI.id
resource_id = aws_api_gateway_resource.MyDemoUserIdResource.id
http_method = aws_api_gateway_method.MyDemoUserIdPutMethod.http_method
type = "AWS_PROXY"
uri = "<lambda function arn>/invocation"
}
引用文献
关于amazon-web-services - terraform aws apigateway path_part,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69271797/
我们正在使用 AWS API Gateway,我正在使用 CloudFormation 注册域和 A 记录,如下所示: Domain: Type: AWS::ApiGateway::Dom
我有以下 CF 模板 { "Conditions":{ "CreatedProdStage" : {...} } ... "Resources":{
我目前正在将 AWS Lambda 用于我的内部应用程序到使用 jreSTLess 实现的 spring 框架的应用程序调用。 应用程序调用的应用程序完美运行,延迟适中(理想情况下约为 10-15 毫
我们有一个返回 gzip 编码的端点。我们想要缓存该值,我们正在使用 ApiGateway 来为我们做到这一点。资源方法定义如下, GetManifestApiGatewayMethod: # ver
我正在处理swagger文件,要在aws apigateway中创建授权者。但是这次我会在swagger文件中提到一些函数和api。但是它不会在Apigateway中生效。一旦我删除了堆栈,它就会生效
在使用 Cognito 和 API Gateway 访问我们的 REST API 时遇到问题 我这辈子都找不到一个简单的例子来说明如何在我们的 AWS 服务器上调用安全的 REST API。 我打电话
我正在使用 AWS CDK 构建我的 lambda,我想从 lambda 的 CDK 堆栈注册端点。 我发现我可以使用 fromRestApiId(scope, id, restApiId) 获取现有
我使用此配置部署到“Prod”阶段: "ApiGatewayApi": { "Type": "AWS::Serverless::Api", "Properties": {
我有一个 API 网关集成,其中数据直接发送到 dynamodb。 x-amazon-apigateway-integration 定义了响应代码映射,因此我的目的是在客户端获取 dynamodb 抛
下面是我的cloudformation模板。我想将 aws:SourceVpc 转换为资源策略文档中的列表。我尝试了溢出但低于错误。 政策文件无效。请检查策略语法并确保主体有效。 (服务:Amazon
我有一个由多个 lambda 组成的状态机,我使用 Cloudformation 模板设置了这些 lambda,该模板执行一些处理并最终将文件保存到 S3;除非有要求,否则我不会在这里添加它,因为它可
我正在使用 vert.x 和 RxJava 开发 Apigateway。我想发送 2 个 Api 的响应式(Reactive)请求,从它们那里获取响应并通过 HttpServer 发送组合的 JSON
我正在使用 AWS SignV4 签署调用 AWS API Gateway 的请求。使用带 header 的请求不适合我的用例,因此主动使用签名网址和查询字符串。 我用过AWS Sample Pyth
我正在为我的电子商务应用程序创 build 计。它将拥有由 AWS Lambda 支持的多项服务。 Orderservice、InventoryService、PaymentService、Loggi
我能够使用 Cloudformation/无服务器应用程序模型定义和部署我的 API 网关 + Lambda 堆栈,并希望向我的 API 添加模型。 我已在 YAML 中创建了模型,但它似乎无法引用我
我看不到更新 AWS APIGateway 自定义域上的证书的方法。如果我使用新证书创建新的自定义域,则无法使用现有的 *.cloudfront.net 域。我将不得不更新 DNS 以指向新域。 有没
刚刚通过 AWS 学习 - 我有一个 APIGateway REST API 设置与 Lambda 代理集成。 API 定义了一个模型,并使用该模型在主体上请求验证设置。 假设模型是 { "$
没有找到任何有关如何实现 Cloudfront + MTLS 或 Api Gateway + MTLS 的资料。可能吗?如果没有,是否有其他方法可以使用 CloudFront + ApiGateway
我在 ApiGateway 中使用 Lambda 代理和 Cognito 用户池授权器。在 Lambda 函数中,我可以通过事件对象访问路径等变量。除此之外,我想访问经过身份验证的用户的声明。在它写的
如何使用 AWS-CDK 从 apigateway 迁移到 apigatewayv2? 具体来说:我正在使用 LambdaRestApi和 restApiId和 deploymentStage从那个资
我是一名优秀的程序员,十分优秀!