AWS SAM:创建/导出API网关资源并将其导入另一个堆栈

时间:2019-12-19 16:26:03

标签: aws-lambda amazon-cloudformation aws-api-gateway aws-sam

我正在尝试使用SAM自动化在AWS上的部署。

在第一个SAM模板中,我想创建一个API网关,Cognito授权者和使用该API网关的lambda函数。

我正在尝试从第一个模板导出此API网关资源。

我想使用import语句在另一个SAM模板中使用此API网关资源。

有没有很好的示例说明从第一个SAM模板导出API网关资源,然后在第二个SAM模板中使用它。

1 个答案:

答案 0 :(得分:0)

尝试一下(未测试):

从这里Fn::ImportValue

堆栈A导出

Outputs:   
  ServerlessRestApi:
      Value: !Ref MyApiGatewayResource
      Export:
         Name: !Sub "${AWS::StackName}-ServerlessRestApi"

堆栈B导入

导入Lambda函数:

MyLambda:
    Type: AWS::Serverless::Function
    Properties:
        FunctionName: !Sub "${AWS::StackName}-MyLambda"
        Handler: ....
        CodeUri: .....
        Events:
            MyApi:
                Type: Api
                Properties:
                    Path: /example
                    Method: post
                    RestApiId:
                       Fn::ImportValue:
                          !Sub "${StackANameParameter}-ServerlessRestApi"

希望这会有所帮助