【发布时间】:2021-07-03 02:51:52
【问题描述】:
我正在使用 AWS ECR 来存储 docker 图像。在我的管道工作流程中,要将图像推送到 ECR,我需要获取身份验证令牌以将 docker 身份验证到 AWS ECR。我通过运行aws ecr get-login-password 命令来做到这一点。这一切都很好。
现在,当我必须重复此操作时,理想情况下我不想立即获得新令牌,因为前一个令牌有效期为 12 小时。如何检查现有令牌是否仍然有效且未过期?找不到任何aws cli 命令来执行此操作?
【问题讨论】:
-
出于好奇,您是否有特殊原因不想获得另一个令牌?
-
我很高兴获取另一个令牌,但不是在之前获取的令牌仍然有效时。主要是因为我不希望很多令牌漂浮在内存中(或某个临时位置 - 不确定它存储在哪里),因为我们有很多用户将在一个使用管道的一天。所以我不想每次都获取一个新的令牌,因为如果可以的话,比如说在 5 个不同的构建代理的 12 小时窗口内获取 5 个令牌,我不想获取 50 个令牌。希望这是有道理的。
-
@rockn-rolla - 对于您的重用案例,(1) 在使用先前令牌的身份验证错误之后,您不能调用
aws ecr get-login-password吗?或 (2) 保持下一次刷新时间,即现在 12 小时后,并在使用令牌之前检查该时间? -
@amitd 谢谢!我自己正在考虑您提到的第一种方法-我可以使它起作用。至于您的第二种方法,您能否举个例子说明您建议如何保持下一次刷新时间?
-
+1 第一种方法(我正要建议为“错误登录”添加一些逻辑)。另外,不确定这是否对您的方案有帮助? github.com/awslabs/amazon-ecr-credential-helper(作为第三种选择)。
标签: amazon-web-services docker aws-cli amazon-ecr