使用名称空间在AWS ECR中存储图像

时间:2020-10-06 19:05:19

标签: amazon-web-services amazon-ecr

AWS声称在回购协议中支持命名间隔规则,但我不遵循您应该如何设置它们。根据文档here

存储库名称可以支持名称空间,您可以使用该名称空间进行分组 类似的存储库。例如,如果有多个团队使用 同一注册表,团队A可以使用团队A的名称空间,而团队B可以使用 team-b名称空间。每个团队都有自己的形象 网络应用程序,但是由于它们各自以团队名称空间开头, 这两个图像可以同时使用而不会产生干扰。球队 A的图片将称为team-a / web-app,而B团队的图片将称为 被称为team-b / web-app。

因此我们在<registry ID>.dkr.ecr.<region>.amazonaws.com/mycompany/myproj的注册表中创建了一个存储库

基于此,我希望能够在此myproj名称空间中存储多个图像,例如:

<registry ID>.dkr.ecr.<region>.amazonaws.com/mycompany/myproj/imageone:latest

<registry ID>.dkr.ecr.<region>.amazonaws.com/mycompany/myproj/imagetwo:latest

但是,当我尝试推送这些图像之一时,它告诉我存储库mycompany/myproj/imageone不存在。我不知道为什么会认为imageone是我的存储库名称的一部分,而不是我的图像名称:tag的一部分。在我的存储库命名方式或图像命名/标记方面,我在这里做错了吗?

1 个答案:

答案 0 :(得分:3)

ECR不支持将“命名空间”作为层次结构的分组概念。尽管ECR具有扁平结构,但通常在存储库名称中使用斜杠来组织存储库。

在您的示例中,您将创建两个名称为以下的存储库:

  1. mycompany/myproj/imageone
  2. mycompany/myproj/imagetwo

然后,您可以使用此命名约定编写基于身份的策略,例如可以授予IAM组myproj对资源arn:aws:ecr:us-east-1:123456789012:repository/mycompany/myproj/*的权限。除此之外,使用公共前缀并没有什么特别的,ECR认为它们是两个名称相似的存储库。