使用 terraform 数据源从 ECR 获取最新/最新的图像

Roh*_*gid 9 terraform amazon-ecr terraform-provider-aws

我有一个名为 ECR 存储库workflow,在该存储库中,有 5 个使用 GitHub 操作推送的图像。

现在我有一个 terraform 工作流程,它将仅使用 ECR 中的图像,并使用此 ECR 图像构建 ECS 容器定义。

所以现在我想获取带有标签的最新图像,无论它是什么......

我尝试了下面的事情

data "aws_ecr_repository" "example" {
  name = "workflow"
}
Run Code Online (Sandbox Code Playgroud)

进而

 "image": "${data.aws_ecr_repository.example.repository_url}"
Run Code Online (Sandbox Code Playgroud)

但在这里我只得到没有标签的存储库的 Url

那么我怎样才能在这里传递带有标签的最新或最新图像呢?

Gor*_*don 9

看来这个功能现在可以使用了

data "aws_ecr_image" "service_image" {
  repository_name = "my/service"
  most_recent       = true
}
Run Code Online (Sandbox Code Playgroud)


Mat*_*dom 6

我正在寻找相同的内容,看看这个文档是否适合您 https://registry.terraform.io/providers/hashicorp/aws/2.34.0/docs/data-sources/ecr_image

它包括一种获取图像的方法:

data "aws_ecr_image" "service_image" {
    repository_name = "my/service"
    image_tag       = "latest"
}
Run Code Online (Sandbox Code Playgroud)

问题是“image_uri”不在资源中。Github 上有一个关于它的开放问题: https://github.com/hashicorp/terraform-provider-aws/pull/24526

同时您可以使用以下格式的 url:

"${var.aws_account_id}.dkr.ecr.${var.region}.amazonaws.com/${var.project_name}:${var.latest-Tag}"
Run Code Online (Sandbox Code Playgroud)