我有一个 lambda 函数,我想通过 HTTP 请求触发它。
当我单击add triggerlambda 函数时,我会得到一个 API Gateway API 设置:
method: ANY
Run Code Online (Sandbox Code Playgroud)
伟大的。现在,当查看此 lambda 函数时,我看到已配置触发器。
但是,我想将触发器限制为仅允许POST请求。
因此,我删除了 API Gateway 方法ANY,并POST在同一资源下创建了一个新方法,使用的集成类型为Lambda Function. 我选择了我的区域,果然,我现有的 lambda 函数会自动完成。
但是,当我查看triggerslambda 函数本身的选项卡时,它显示没有触发器。
我缺少什么?
我正在学习 AWS API Gateway 来管理云中的 api,而不是通过express.js。我使用以下集成请求在资源下创建了方法DELETE 。
整合请求
Integration Type: AWS Service
AWS Region: us-east-1
AWS Service: DynamoDB
HTTP method: DELETE
Action: deleteItem
Execution role: XXXXXX
Content Handling: Passthrough
Run Code Online (Sandbox Code Playgroud)
执行角色正在发挥作用,因为我可以读取/写入 DynamoDB。身体测绘模板,其内容Content-Type: application/json如下:
{
"TableName": "comments",
"Key": {
"commentId": {
"S": "$context.requestId"
},
"pageId": {
"S": "$input.path('$.pageId')"
},
"userName": {
"S": "$input.path('$.userName')"
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用请求正文运行测试时,如下所示:
{
"pageId": "breaking-news-story-01-18-2016",
"userName": "cacevedo"
}
Run Code Online (Sandbox Code Playgroud)
我得到以下信息:
Request: /comments
Status: 200
Latency: 80 ms
Response Body
Response …Run Code Online (Sandbox Code Playgroud) 我有一个 API 网关,可以访问 dynamo DB 中存储的表。存储的表看起来像 JSON,如下所示
{
"photos": {
"page": 1,
"pages": "1234",
"perpage": 100,
"photo": [
{
"farm": 1,
"id": "12345678901",
"isfamily": 0,
"isfriend": 0,
"ispublic": 1,
"owner": "23456789@A12",
"secret": "abc123d456",
"server": "1234",
"title": "Sample photo 1"
},
{
"farm": 2,
"id": "23456789012",
"isfamily": 0,
"isfriend": 0,
"ispublic": 1,
"owner": "34567890@B23",
"secret": "bcd234e567",
"server": "2345",
"title": "Sample photo 2"
}
],
"total": "123398"
},
"srini": "srini"
}
Run Code Online (Sandbox Code Playgroud)
如果没有集成响应映射模板,我得到的表格如下所示
{
"Count": 1, "Items": [
{
"photos": {
"M": { …Run Code Online (Sandbox Code Playgroud) 我尝试使用 apiGateway 作为 dynamodb 的代理,但由于某种原因集成返回 404。
我在 apiGateway 中创建了一个 patch 方法资源。并在集成映射模板中使用以下数据进行测试:
{
"TableName": "Retool_Output",
"Item": {
"customerId": "1234",
"fav_movies": "Shalini"
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我测试这个网关时,它不会更新 dynamodb 并给出 404,如下所示。
Tue Aug 06 17:03:56 UTC 2019 : Endpoint request body after
transformations: {
"TableName": "Retool_Output",
"Item": {
"customerId": "1234",
"fav_movies": "Shalini"
}
}
Tue Aug 06 17:03:56 UTC 2019 : Sending request to https://dynamodb.ap-
south-1.amazonaws.com//
Tue Aug 06 17:03:56 UTC 2019 : Received response. Status: 404, Integration
latency: 13 ms
Run Code Online (Sandbox Code Playgroud)
有人可以建议我如何解决这个问题。
我正在开发一个仅支持 cURL 请求(仅 POST/GET/UPDATE 等)的平台。我需要在我的应用程序中使用 DynamoDB - 有没有办法通过 cURL 实施 DynamoDB?更清楚地说,我只需要四件事 - PutItem、Query、GetItem和Update ItemDynamoDB。
我在某处读到过有关“Lambda”函数的内容,但无法确切理解它创建 REST API 的目的是什么。它会以任何方式帮助我吗?
感谢任何帮助:) 谢谢!
amazon-web-services amazon-dynamodb aws-lambda aws-api-gateway
有没有一种方法可以在本地 IBM MQ 与 AWS SQS/API Gateway 之间进行集成。我检查了很多链接,但发现我们可以将整个 IBM MQ 迁移到 AWS MQ,但无法从 AWS 调用到本地MQ。如果有人尝试过这种集成,请提出建议。
我正在使用 AWS CDK 为 API 网关 websocket 构建堆栈。 我可以在这里看到这个文档
但它没有提供任何明确的解释,在构造上用于 Web 套接字。有人可以帮助我使用正确的构造来用于 websockets。
我想在 AWS API 网关中创建许多路由,并将请求传递给 AWS lambda 函数。每个路由应将请求传递给 Lambda 函数中的不同方法。但现在我只看到我们只能为 lambda 定义一个处理程序,这是调用时唯一被调用的函数。有没有最好的方法可以通过示例代码实现这一目标?
最近几天我正在尝试学习如何使用AWS,因为我想部署一些API。
到目前为止,我正在学习如何将API Gateway与Lambda 函数结合使用,这似乎是一个不错的工作流程。但是,因为我使用Flask-restplus编写 API ,所以我尝试了Zappa框架,该框架使用EventBridge (CloudWatch Events)作为我创建的每个 Lambda 函数的触发器。
所以我的问题是:
先感谢您。
zappa aws-lambda aws-api-gateway flask-restplus aws-event-bridge
最近AWS发布了基于HTTPS的API网关(不是REST)。我们使用 Terraform 来管理 AWS 资源,并且我们有一个服务来创建 AWS HTTPS API 网关资源,存在一个安全问题,即我们允许任何 IP/系统调用 API,因此我们计划添加一个策略(资源策略)以限制仅访问特定 IP。对于 REST API 网关来说,实现这一点很容易,因为我们有aws_api_gateway_rest_api_policy资源来通过 Terraform 创建策略并将其附加到网关,但对于 HTTPS API 网关却无法实现同样的效果。我们使用aws_apigatewayv2_api创建 HTTPS 网关资源,但找不到附加策略的资源,或者在创建网关本身时没有指定策略的选项。如果您能了解如何将策略附加到基于 HTTPS 的 API,我们将不胜感激。谢谢。
amazon-web-services terraform aws-api-gateway terraform-provider-aws
这对后端来说是一件非常痛苦的事情,浪费了好几个小时,而且仍然无法弄清楚 AWS CloudFormation 的一行语法。
如果 AWS 的人员可以更好地编写他们的文档 - 只需多花一点时间 - 这对开发人员来说会更容易。
我正在尝试使用 CloudFormation 来部署具有 VPC Link 和 NLB 的 API Gateway。目标是将所有请求代理传递到 NLB:
ApiProxyMethod:
Type: AWS::ApiGateway::Method
Properties:
RestApiId: !Ref ApiGatewayRestApi
ResourceId: !Ref ApiProxyResource
# AuthorizationScopes: # https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizationscopes
AuthorizationType: COGNITO_USER_POOLS
AuthorizerId: !Ref ApiAuthorizer
HttpMethod: ANY
OperationName: "ProxyAllRequests"
Integration:
ConnectionType: VPC_LINK
ConnectionId: !Ref ApiGatewayVpcLink
IntegrationHttpMethod: ANY
PassthroughBehavior: String
Type: "VPC_LINK" # Member must satisfy enum value set: [HTTP, AWS_PROXY, HTTP_PROXY, AWS]
Uri: "http://NLB-myapp-internal-beta-12345.elb.ap-northeast-1.amazonaws.com/{proxy}"
Run Code Online (Sandbox Code Playgroud)
然而,这失败了,它抱怨错误的Type值:Member must satisfy enum value set: [HTTP, …
amazon-web-services amazon-elb aws-cloudformation amazon-vpc aws-api-gateway
aws-api-gateway ×11
aws-lambda ×4
amazon-elb ×1
amazon-sqs ×1
amazon-vpc ×1
aws-sdk-net ×1
ibm-mq ×1
terraform ×1
zappa ×1