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

Aws lambda AWS SAM:创建/导出API网关资源并将其导入另一个堆栈,aws-lambda,amazon-cloudformation,aws-api-gateway,aws-sam,Aws Lambda,Amazon Cloudformation,Aws Api Gateway,Aws Sam,我正在尝试使用SAM自动化AWS上的部署 在第一个SAM模板中,我想创建一个API网关、Cognito Authorizer和一个使用此API网关的lambda函数 我正在尝试从第一个模板导出此API网关资源 我想使用import语句在另一个SAM模板中使用此API网关资源 有没有什么好的例子可以解释从第一个SAM模板导出API网关资源,然后在第二个SAM模板中使用它。试试这个(未测试): 从这里 堆叠导出 Outputs: ServerlessRestApi: Value

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

在第一个SAM模板中,我想创建一个API网关、Cognito Authorizer和一个使用此API网关的lambda函数

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

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

有没有什么好的例子可以解释从第一个SAM模板导出API网关资源,然后在第二个SAM模板中使用它。

试试这个(未测试):

从这里

堆叠导出

Outputs:   
  ServerlessRestApi:
      Value: !Ref MyApiGatewayResource
      Export:
         Name: !Sub "${AWS::StackName}-ServerlessRestApi"
堆栈B导入

Outputs:   
  ServerlessRestApi:
      Value: !Ref MyApiGatewayResource
      Export:
         Name: !Sub "${AWS::StackName}-ServerlessRestApi"
导入到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"

希望这有帮助

AWS::Serverless::函数不能引用其他模板API Id。根据文档()-“这不能引用其他模板中定义的AWS::Serverless::API资源。”