如何通过Terraform获取账号下所有CodeCommit仓库ARN列表?
获取AWS账号下所有CodeCommit仓库ARN的Terraform实现
当然可行,Terraform提供了**aws_codecommit_repositories**数据源(复数形式,区别于单仓库的aws_codecommit_repository),无需指定具体仓库名就能拉取当前AWS账号下所有CodeCommit仓库的信息。
基础实现:直接输出所有ARN列表
使用以下代码即可快速获取所有仓库ARN:
# 拉取账号下所有CodeCommit仓库 data "aws_codecommit_repositories" "all_repos" {} # 输出所有仓库的ARN列表 output "all_codecommit_arns" { value = data.aws_codecommit_repositories.all_repos.repository_arns }
执行terraform apply后,你会得到一个包含所有CodeCommit仓库ARN的数组输出。
扩展:获取仓库详细信息
如果需要更多仓库元数据(比如名称、克隆地址、仓库ID等),可以引用数据源的repositories属性,它返回每个仓库的完整信息对象:
data "aws_codecommit_repositories" "all_repos" {} output "codecommit_repo_details" { value = data.aws_codecommit_repositories.all_repos.repositories }
每个仓库对象包含的核心字段有:
arn:仓库ARNrepository_name:仓库名称repository_id:仓库唯一IDclone_url_http:HTTP克隆地址clone_url_ssh:SSH克隆地址
你可以通过遍历这个列表提取特定字段,比如只输出名称和ARN的映射:
output "repo_name_to_arn" { value = { for repo in data.aws_codecommit_repositories.all_repos.repositories : repo.repository_name => repo.arn } }
内容的提问来源于stack exchange,提问作者Qadri
相关产品推荐
相关产品推荐

