【问题标题】:AWS SAM Template Create APIAWS SAM 模板创建 API
【发布时间】:2018-04-15 15:21:36
【问题描述】:

我将以下 SAM 模板用于 lambda 函数

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  GetFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: handler.get
      Runtime: nodejs6.10
      Environment:
        Variables: 
          S3_BUCKET: bucket
      Events:
        GetResource:
          Type: Api
          Properties:
            Path: /resource/{resourceId}
            Method: get

我对“事件”部分有点困惑。当我部署它时,lambda 函数创建得很好,但是由于我在事件下提到 Api,我希望它创建一个 API 网关。但是,当我导航到 API 网关部分 https://console.aws.amazon.com/apigateway/ 时,我没有看到创建任何 API 网关。当我导航到 CloudFormation 堆栈并查看模板时,它显示了 API 网关,但它没有显示正在创建一个。我在这里错过了什么?

【问题讨论】:

  • 仔细检查并查看特定堆栈的资源选项卡。

标签: amazon-web-services aws-lambda aws-api-gateway


【解决方案1】:

SAM 模板似乎没有问题。您是否查看过堆栈详细信息的“资源”部分?应该有一个 AWS::ApiGateway::RestApi 类型的资源以及一个物理 ID 和一个状态。您也可以尝试删除堆栈并重新部署它。

【讨论】:

    【解决方案2】:

    当您创建 SAM 模板 Lambda 函数时,如果您没有指定任何 restapi ID,那么它将自行创建一个 restapi,但如果您需要额外的东西,例如 cors 和请求模板类似功能,您可以创建一个 api 网关对象和然后在 lambda 函数声明的事件中使用 !Ref 所以你可能遗漏了一些东西,尝试点击声明中定义的 url。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-23
      • 2019-08-11
      相关资源
      最近更新 更多