标签: aws-api-gateway

API网关方法与lambda函数集成,但lambda函数声称它没有触发器

我有一个 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 函数本身的选项卡时,它显示没有触发器。

我缺少什么?

amazon-web-services aws-lambda aws-api-gateway

0
推荐指数
1
解决办法
461
查看次数

使用 AWS API 删除 DynamoDB 条目

我正在学习 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)

amazon-web-services aws-api-gateway

0
推荐指数
1
解决办法
1761
查看次数

AWS API Gateway 作为 dynamo DB HTTP 获取映射模板的代理

我有一个 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)

amazon-web-services amazon-dynamodb aws-api-gateway

0
推荐指数
1
解决办法
1162
查看次数

Api 网关与 dynamodb 集成给出 404

我尝试使用 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)

有人可以建议我如何解决这个问题。

amazon-dynamodb aws-api-gateway

0
推荐指数
1
解决办法
2079
查看次数

如何在 cURL 中实施 DynamoDB?

我正在开发一个仅支持 cURL 请求(仅 POST/GET/UPDATE 等)的平台。我需要在我的应用程序中使用 DynamoDB - 有没有办法通过 cURL 实施 DynamoDB?更清楚地说,我只需要四件事 - PutItemQueryGetItemUpdate ItemDynamoDB。

我在某处读到过有关“Lambda”函数的内容,但无法确切理解它创建 REST API 的目的是什么。它会以任何方式帮助我吗?

感谢任何帮助:) 谢谢!

amazon-web-services amazon-dynamodb aws-lambda aws-api-gateway

0
推荐指数
1
解决办法
1120
查看次数

本地 IBM MQ 与 AWS 集成

有没有一种方法可以在本地 IBM MQ 与 AWS SQS/API Gateway 之间进行集成。我检查了很多链接,但发现我们可以将整个 IBM MQ 迁移到 AWS MQ,但无法从 AWS 调用到本地MQ。如果有人尝试过这种集成,请提出建议。

amazon-sqs amazon-web-services aws-api-gateway ibm-mq

0
推荐指数
1
解决办法
4440
查看次数

c# 中用于 API 网关 websockets 的 aws CDK 构造

我正在使用 AWS CDK 为 API 网关 websocket 构建堆栈。 我可以在这里看到这个文档

但它没有提供任何明确的解释,在构造上用于 Web 套接字。有人可以帮助我使用正确的构造来用于 websockets。

amazon-web-services aws-api-gateway aws-sdk-net

0
推荐指数
1
解决办法
796
查看次数

AWS 网关将许多 API 路由到单个 lambda 集成,每个端点映射到 Lambda (java) 的不同函数

我想在 AWS API 网关中创建许多路由,并将请求传递给 AWS lambda 函数。每个路由应将请求传递给 Lambda 函数中的不同方法。但现在我只看到我们只能为 lambda 定义一个处理程序,这是调用时唯一被调用的函数。有没有最好的方法可以通过示例代码实现这一目标?

amazon-web-services aws-lambda aws-api-gateway

0
推荐指数
1
解决办法
3637
查看次数

EventBridge 与 API 网关

最近几天我正在尝试学习如何使用AWS,因为我想部署一些API。

到目前为止,我正在学习如何将API GatewayLambda 函数结合使用,这似乎是一个不错的工作流程。但是,因为我使用Flask-restplus编写 API ,所以我尝试了Zappa框架,该框架使用EventBridge (CloudWatch Events)作为我创建的每个 Lambda 函数的触发器。

所以我的问题是:

  1. EventBridge 和 API Gateway 之间有什么区别?我何时应该使用它们?
  2. 在使用 API Gateway 时,我意识到最佳实践是为每个 API 创建不同的 Lambda 函数,然后将其连接到网关。那么,将整个 python 文件作为 Lambda 函数上传是一个好主意吗?(所有 API 路由都写在那里)或者我应该为每个 API 执行一个过程?

先感谢您。

zappa aws-lambda aws-api-gateway flask-restplus aws-event-bridge

0
推荐指数
1
解决办法
2730
查看次数

AWS:AWS HTTPS API 网关的资源策略,用于限制对特定 IP 的访问

最近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

0
推荐指数
2
解决办法
3141
查看次数

AWS Cloudformation - 如何将 vpc 链接/NLB 附加到 api 网关中的方法?

这对后端来说是一件非常痛苦的事情,浪费了好几个小时,而且仍然无法弄清楚 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

0
推荐指数
1
解决办法
813
查看次数