gpt4 book ai didi

amazon-web-services - CloudFormation模板-通过参数选择设置容器镜像

转载 作者:行者123 更新时间:2023-12-03 07:41:53 24 4
gpt4 key购买 nike

希望根据参数的选择来设置指定的容器镜像;假设选择“接受”,则容器镜像将指向接受分支镜像,或者“部署”将指向部署,等等。

这是我尝试过的一次尝试,但不确定这是否是最佳路径或允许的路径。创建堆栈后我收到一个错误:

ECSTaskDefinition CREATE_FAILED Invalid request provided: Create TaskDefinition: Container.name should not be null or empty. (Service: AmazonECS; Status Code: 400; Error Code: ClientException; Request ID: b679c7be-ad3e-4791-b388-d2cb87332b94; Proxy: null)
Parameters:
Branch:
Type: String
AllowedValues:
- acceptance
- canary
- deploy
Mappings:
BranchSelection:
acceptance:
BranchType: "${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/acceptance"
canary:
BranchType: "${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/canary"
deploy:
BranchType: "${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/deploy"

ECSTaskDefinition:
Type: "AWS::ECS::TaskDefinition"
Properties:
ContainerDefinitions:
-
Environment:
-
Name: "ACCESS_KEY_ID"
Value:
!Sub
- "{{resolve:ssm:/doorways/${STAGE}/ACCESS_KEY_ID:1}}"
- { STAGE: !Ref STAGE }
-
Name: "SECRET_ACCESS_KEY"
Value:
!Sub
- "{{resolve:ssm:/doorways/${STAGE}/AWS_SECRET_KEY:1}}"
- { STAGE: !Ref STAGE }
-
Name: "SENDGRID_USERNAME"
Value:
!Sub
- "{{resolve:ssm:/doorways/${STAGE}/SENDGRID_USERNAME:1}}"
- { STAGE: !Ref STAGE }
-
Name: "SENDGRID_PASSWORD"
Value:
!Sub
- "{{resolve:ssm:/doorways/${STAGE}/SENDGRID_PASSWORD:1}}"
- { STAGE: !Ref STAGE }
-
Name: "REGION"
Value: !Ref AWS::Region
-
Essential: true
Image: !FindInMap
- BranchSelection
- !Ref Branch
- BranchType
LogConfiguration:
LogDriver: "awslogs"
Options:
awslogs-group: "/ecs/doorways-task-definition"
awslogs-region: !Ref AWS::Region
awslogs-stream-prefix: "ecs"
Name:
!Sub
- 'dw-${FriendlyName}-${SiteId}-${STAGE}'
- { FriendlyName: !Ref FriendlyName, SiteId: !Ref SiteId, STAGE: !Ref STAGE }
PortMappings:
-
ContainerPort: 3000
HostPort: 3000
Protocol: "tcp"
-

有人有类似的用例,并且可以为我指出正确的方向吗?

最佳答案

Environment必须至少有一个:

  Name: String
Value: String

你没有。此外,您的 FindInMap 也不会按照您想象的方式工作。值 ${AWS::AccountId}${AWS::Region} 将不会被替换,最终将得到文字字符串。

关于amazon-web-services - CloudFormation模板-通过参数选择设置容器镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65116838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com