obl*_*lio 9 amazon-s3 amazon-web-services amazon-ecs aws-cloudformation docker
我正在尝试从Cloud Formation创建弹性容器服务(ECS)设置.
但是,我不希望ECS存储库具有丑陋的自动生成的URI:
111111111.dkr.ecr.us-east-1.amazonaws.com/docker-repo.company.com
但相反,我希望它有一个漂亮和有光泽
docker-repo.company.com
存储库本身不允许设置URI 甚至是CNAME.所以我试图设置一个S3存储桶重定向到repo.但是,除非我遗漏了某些东西,否则Cloud Formation不支持这个,因为使用!Ref或!GetAtt我无法在AWS :: ECR :: Repository对象中查询,它将为我提供存储库URI.
我错过了什么吗?谢谢!
obl*_*lio 21
这有点愚蠢,但最终似乎你不能引用ECR的URI,因为Cloud Formation不支持它.
有对URI没有属性,即使有趣的是他们的Ruby SDK不支持它,甚至是第三方,跨云Terraform支持它.
但是,您可以解决这个问题,因为存储库URI是稳定的,它不包含任何随机部分,因此您可以从已有的东西中组合URI:
HostName: !Sub "${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/${dockerrepocompanycom}"
Run Code Online (Sandbox Code Playgroud)
或者对于不那么酷的老派版本:
HostName: !Join [ ".", [ !Ref "AWS::AccountId", "dkr.ecr", !Ref "AWS::Region", !Join [ "/", [ "amazonaws.com", !Ref "dockerrepocompanycom" ] ] ] ]
Run Code Online (Sandbox Code Playgroud)
用于创建S3存储桶的完整工作配置:
s3dockerrepo1redirect:
Type: AWS::S3::Bucket
Properties:
BucketName: "docker-repo.company.com"
WebsiteConfiguration:
RedirectAllRequestsTo:
HostName: !Sub "${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/${dockerrepocompanycom}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2220 次 |
| 最近记录: |