AWS 堆栈输出 ECR 图像名称

AWS stack output ECR image name

我正在使用 cloudformation 创建一组 ECR 存储库以在我的根脚本中使用。对于任务定义,我需要使用如下格式的这些创建的存储库的图像名称:

{ACC_NR}.dkr.ecr.eu-central-1.amazonaws.com/{REPO_NAME}

当我在输出中输出创建的 ECR 时,我只有 2 个选项。我可以得到 {REPO_NAME} 前面没有其余信息,或者我将得到 ARN,它包含或多或少相同的信息,但结构不同。

在 CF 模板内的变量中获取图像名称的最佳方法是什么?基本上我需要在导航到 ECR 并按下存储库旁边的“复制”按钮时获得的字符串。

您可以“手动”构建所需的 ARN。例如,要将其作为输出添加到创建 AWS::ECR::Repository 的堆栈,您可以执行以下操作:

Resources:

    MyECRRepo:
        Type: AWS::ECR::Repository
        Properties:
            # some properties

Outputs:

    MyARN:
        Value: !Sub "${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/{MyECRRepo}"