AWS cloudformation 域名和 API 映射

Posted

技术标签:

【中文标题】AWS cloudformation 域名和 API 映射【英文标题】:AWS cloudformation domain names and API mappings 【发布时间】:2022-01-20 16:45:20 【问题描述】:

我有一个域名 example.com 和一个带有 api 网关的 lambda 后端,它使用以下 yaml 模板设置了云形成和代码管道:

 PostSomeApi:
      Type: AWS::Serverless::Function
      Properties:
       Handler: lambda_function.lambda_handler
       Runtime: python3.8
       FunctionName: some-api-name
       CodeUri: ./src/some-api-name 
       Role: !Ref LambdaRoleArn
       Timeout: 45
       Environment:
        Variables:
          accountId: !Ref "AWS::AccountId"
          region:    !Ref "AWS::Region"
       Events:
        SampleApi:
         Type: Api
         Properties:
          Path: /someapiname
          Method: POST

我使用控制台上的手动配置将子域 api.example.com 连接到 lambda api 网关,但现在我想将此 API 映射包含在云形成 yaml 模板中。

我该怎么做? This is the manual configuration of the api mapping

【问题讨论】:

进展如何?仍然不清楚你能做什么? 您好,感谢您要求我创建一个 AWS::Serverless::Api 和一个域,但后来我仍在努力处理 API 映射:MyDomainDev:类型:AWS::ApiGateway::DomainName 属性: 域名: api-dev.example.com CertificateArn: !Sub 'arn:aws:acm:us-east-1:$AWS::AccountId:certificate/a2c90924-*****' EndpointConfiguration: 类型: - EDGE 安全策略:TLS_1_2 SampleFunction: Type: AWS::Serverless::Function Properties: Handler: Index.lambda_handler Runtime: python3.7 FunctionName: SamplePython CodeUri: ./src/nominal #Directory源文件是Role: !子 arn:aws:iam::$AWS::AccountId:role/LambdaRole 环境:变量:accountId: !Ref "AWS::AccountId" region: !Ref "AWS::Region" 事件:SampleApi:类型:Api属性:路径:/sample-test 方法:GET RestApiId:参考:SampleApi SampleApi:类型:AWS::Serverless::Api 属性:StageName:Test OpenApiVersion:'2.0' 域:MyDomainDev APIMapping: Type: AWS::ApiGateway::BasePathMapping Properties: BasePath: example ( or empty ) DomainName: api-dev.example.com RestApiId: SampleApi Stage: dev 【参考方案1】:

您必须创建AWS::Serverless::Api,而不是手动执行此操作,您可以在其中提供DomainConfiguration。

【讨论】:

感谢您的回答。您的意思是用AWS::Serverless::Api 替换正在创建APIGateway 的Events: SampleApi: Type: Api Properties: Path: /someapiname Method: POST?你能放一个示例代码吗? @philiot 是的。您创建自己的 AWS::Serverless::Api。

以上是关于AWS cloudformation 域名和 API 映射的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Cloudformation 中获取区域 AWS API 网关的自定义域的目标域名?

AWS CloudFormation:Cognito LambdaTrigger CustomEmailSender - 属性“AWS CloudFormation 目前不支持。”和 CDK 的使用

AWS Cloudformation的相关概念

AWS 中的 cloudformation 最佳实践

AWS CloudFormation入门实践

AWS CLI 与控制台和 CloudFormation 堆栈