连接fargate的Cloudformation参数

Posted

技术标签:

【中文标题】连接fargate的Cloudformation参数【英文标题】:Cloudformation Parameter to connect fargate 【发布时间】:2021-10-20 00:35:30 【问题描述】:

我正在为将连接到 Fargate 容器的负载平衡 ECS 设置 CloudFormation。如何在 Fargate 中创建一个参数,以便能够从我现有的 Fargate 图像中进行选择。

使用此模板。 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ecs.html 目前,它使用 Ec2,但我想使用 Fargate。

  containerDefinitions:
      - name: '$Environment-Name'
        logConfiguration:
          logDriver: awslogs
          options:
            awslogs-group: "$/ecs/Environment-Name"
            awslogs-region: eu-west-1
            awslogs-stream-prefix: ecs
        portMappings:
        - hostPort: 3000
          protocol: tcp
          containerPort: 3000
        cpu: 256
        memory: 1024
        image: 

我需要根据参数分配图像

Parameters:
  Name:
    Type: String
    Description: Name the application.
  Environment:
    Type: String
    Description: Environment of the application.
    AllowedValues:
        - prod
        - stage
        - dev

这里我需要添加一个下拉菜单来选择我想要的 Fargate,或者我做的不对。

【问题讨论】:

你能展示你当前的模板并展示你想要实现的目标吗? 添加了我开始使用的模板,目前我在 yaml 中有一些问题。我将添加任务定义的部分我有问题 在控制台中设置所有内容很容易,但希望在 CloudFormation 中拥有它。也许我需要将图像添加为图像的字符串。但我希望它找到当前存在的存储库。 【参考方案1】:

但我希望它找到当前存在的存储库。

很遗憾,这是不可能的。 CFN 根本没有这样的功能。对于某些资源,您可以使用 AWS-specific parameter types 执行此操作,但 ECR 图像不是其中之一。

【讨论】:

感谢您的回答。我想我把CFN想多了。我可以使用创建的 ECR 和使用的环境变量来获取 prod、stage 或 dev 环境,但它们仍然在同一个 repo 中。感谢您提供有用的链接 @MarcusLagerstedt 没问题。如果您有一组自定义图像,您可以对它们进行硬编码,并且您将拥有一个列表,用户可以从中选择他/她想要的图像。

以上是关于连接fargate的Cloudformation参数的主要内容,如果未能解决你的问题,请参考以下文章

AWS ECS Fargate 不带负载均衡器用于内部服务

用于管理 AWS 无服务器基础设施的 Terraform 或 cloudformation [关闭]

ECS 与 EFS 或 EBS 上的持久数据与 CloudFormation

AWS Fargate 网络 - 端口 80:连接被拒绝

无法使用 Fargate 连接到 AWS 网络负载均衡器

在 AWS ECS Fargate 中,任务内无法进行容器间连接