标签: aws-api-gateway

延长 AWS 临时安全凭证的有效期

当调用AssumeRole时,我们可以设置从900秒(15分钟)到最大3600秒(1小时)的时间。默认值为 1 小时。这能超过1个小时吗?比如12小时?

amazon-web-services amazon-cognito aws-api-gateway aws-sts

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

如何使用API​​网关作为S3代理创建唯一的随机密钥名称?

如果使用 API 网关作为 S3 代理,我想将文件名/密钥名称生成为随机字符串。

参考以下答案,我了解到 $context.requestId 可用于生成随机密钥。但是,我无法在集成请求的 URL 路径参数中使用 $context。

amazon-s3 aws-api-gateway

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

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

AWS Cloudformation APIGateway 尝试设置静态标头值时遇到不受支持的属性 IntegrationResponses

我正在尝试使用 Cloudformation 在 AWS APIGateway 的方法执行上设置标头映射。

这是我希望的最终状态: 在此输入图像描述

这是我尝试使用的 Cloudformation JSON 模板片段:

   "AlertDetailMock": {
  "Type": "AWS::ApiGateway::Method",
  "Properties": {
    "RestApiId": {
      "Ref": "RestApi"
    },
    "ResourceId": {
      "Ref": "AlertDetailResource"
    },
    "HttpMethod": "OPTIONS",
    "AuthorizationType": "NONE",
    "Integration": {
      "Type": "MOCK",
      "RequestTemplates": {
        "application/json": "{\"statusCode\": 200}"
      }
    },
    "IntegrationResponses": [
      {
        "ResponseTemplates": {
          "application/json": ""
        },
        "ResponseParameters": {
          "method.response.header.Access-Control-Allow-Origin": "\\'*\\'",
          "method.response.header.Access-Control-Allow-Methods": "\\'GET,OPTIONS\\'",
          "method.response.header.Access-Control-Allow-Headers": "\\'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token\\'"
        },
        "StatusCode": 200
      }
    ],
    "MethodResponses": [
      {
        "ResponseModels": {
          "application/json": {
            "Ref": "AlertDetailsModel"
          }
        },
        "ResponseParameters": {
          "method.response.header.Access-Control-Allow-Origin": true,
          "method.response.header.Access-Control-Allow-Methods": true, …
Run Code Online (Sandbox Code Playgroud)

json amazon-web-services aws-cloudformation devops aws-api-gateway

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

以多种方式调用 AWS Lambda

我正在关注一个演示,并使用 C# 创建了一个通过 AWSSDK 调用的 Lambda。函数处理程序如下所示:

  public async Task<bool> FunctionHandler(string fileName, ILambdaContext context)        
Run Code Online (Sandbox Code Playgroud)

这很好用。现在我想看看是否可以使用API​​网关调用它。我知道为了使其工作,我需要添加APIGatewayProxyRequest到函数签名中。我可以将其添加为参数还是必须替换变量“fileName”?

当我希望以两种方式调用该函数时,这是如何工作的?直接通过 SDK 还是通过 APIGateway?我可以让一个函数可以通过多种方式调用吗?

c# aws-lambda aws-api-gateway

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

无服务器框架 - 具有授权者 COGNITO_USER_POOLS 的 Lambda 函数始终返回“未经授权”

我不明白我的授权有什么问题。

我有一个 Hello 函数,它只返回一条简单的静态消息。如果我在没有设置“Authorizer”的情况下部署,它就可以工作。我已经在邮递员上进行了测试。当我尝试添加授权者时,问题就出现了。

我的 Cognito 已完全正常工作。在我的前端,我可以注册,然后登录,然后从此登录会话获取令牌。

当我去邮差测试时,我总是得到“未经授权”的答案。在 Postman 上,我测试了 GET 方法,在“标头”选项卡上,我添加了“授权”属性,并粘贴了我从登录会话中获得的令牌值。我还在一些地方推荐的前缀“bearer”的值字段上对此进行了测试。没有成功。

在此输入图像描述

过去一周我一直在努力解决这个问题。请,任何帮助都将非常有用。

serverless.yml

provider:
  name: aws
  runtime: nodejs10.x
  stage: dev
  region: eu-west-1
  environment: 
    MY_TABLE: ${self:custom.myStage}_${self:custom.settings.tb_items}
    MY_STAGE: ${self:custom.myStage}
    MY_DOMAIN: ${self:custom.myDomain}
  iamRoleStatements:
    - Effect: "Allow"
      Action:
        - "dynamodb:GetItem"
        - "dynamodb:PutItem"
        - "dynamodb:UpdateItem"
        - "dynamodb:DeleteItem"
        - "dynamodb:Scan"
      Resource: "*"

functions:
  hello:
    handler: ${self:custom.pathFunc}/phraseOption.hello
    events:
      - http: 
          method: GET 
          path: hello
          cors: true
          integration: lambda-proxy
          authorizer:
            type: COGNITO_USER_POOLS
            authorizerId:
              Ref: ApiGatewayAuthorizer

resources:
  Resources:
    CognitoUserPool:
      Type: "AWS::Cognito::UserPool"
      DeletionPolicy: Retain
      Properties:
        MfaConfiguration: OFF
        UserPoolName: ${self:custom.myStage}_aePool …
Run Code Online (Sandbox Code Playgroud)

unauthorized amazon-cognito aws-lambda aws-api-gateway serverless-framework

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

如何在 terraform 中使用 AWS HTTP API(不是 REST API)?

亚马逊最近为他们的 api 网关产品发布了HTTP API,我想使用 Terraform 来启动一些。我看到Terraform具有文档aws_apigatewayv2_api资源,这将创造网关本身,但我找不到路,阶段,或任何其他类型的资源,我会需要我的网关文档。

Terraform 还没有完全支持 HTTP API,还是我在某处遗漏了一些文档?

amazon-web-services terraform aws-api-gateway terraform-provider-aws

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

如何在 AWS API 网关中配置 $default 路径?

我们正在尝试根据https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html利用 AWS API 网关中的 $default 路径

像这样配置 api 网关,利用$default 作为路由之一

/
 /-default
   ANY
 /api
  /{proxy=}
Run Code Online (Sandbox Code Playgroud)

当我们尝试在$default路径和 GET 调用上调用 api 网关时

https://apigateway.amazonaws.com/prod/test
Run Code Online (Sandbox Code Playgroud)

我们假设它会调用默认路径,但它没有

message: "Missing Authentication Token"
Run Code Online (Sandbox Code Playgroud)

但是当我们这样做时

https://apigateway.amazonaws.com/prod/api/test 
Run Code Online (Sandbox Code Playgroud)

API集成时调用

注意:我们已经尝试配置贪婪路径{proxy+}而不是 $default ,因为贪婪路径总是优先并且 /api 路由也被路由到贪婪路径

社区为我们指明正确方向的任何帮助都会有很大帮助

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

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

我无法从 VPC 内部访问 AWS API 网关

我有一个公共 AWS API 网关。

我在与该 API 网关位于同一区域的 VPC 中有一台服务器。服务器无法访问该 API 网关的端点。对网关的请求挂起并超时。服务器可以访问同一个AWS账户其他区域的API网关就好了。

其他地域的VPC中的服务器可以正常访问API网关。我的本地计算机可以正常访问网关。唯一不能访问网关的是同一地区的服务器。

到底是怎么回事?

amazon-web-services amazon-vpc aws-api-gateway

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

使用 AWS Gateway 长时间运行的作业 - Lambda - RDS

我的架构是 AWS Gateway - Lambda - RDS 我从客户那里获取数据作为 xlsx 文件。

我有2个步骤

1.处理文件并存储到事务表中。

2.用户批准后处理数据到活动表。

我的问题是针对大文件,由于时间限制(AWS 网关 30 秒,Lambda 15 分钟)和同步过程,我无法完成这些过程。请建议我 AWS 中的任何服务都可以执行需要与 RDS 持续交互的长时间运行的作业,将文件数据与系统数据进行比较。

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

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