[英]How can I get all AWS Lambdas by Tag in Terraform
我有標簽為 Name=production 的 Lambda。
我想讓他們使用 Terraform,看看aws_lambda_function ,我只能通過 function_name 獲得單個 lambda
data "aws_lambda_function" "existing" {
function_name = var.function_name
}
您可以使用aws_resourcegroupstaggingapi_resources
檢索沒有更具體數據源的多個 AWS 資源的信息。
對於您的用例,考慮Name=production
,您可以使用:
data "aws_resourcegroupstaggingapi_resources" "existing" {
resource_type_filters = ["lambda:function"]
tag_filter {
key = "Name"
values = ["production"]
}
}
output "arns" {
value = data.aws_resourcegroupstaggingapi_resources.existing.resource_tag_mapping_list.*.resource_arn
}
更新:如評論中所述,上面的代碼從resource_tag_mapping_list
返回信息,這些信息主要是合規信息和資源的 ARN。 但您可以將其與常規aws_lambda_function
數據源配對,並使用for_each
從 Lambda 函數中檢索所有信息:
# continuation of the code above
data "aws_lambda_function" "existing" {
for_each = toset(data.aws_resourcegroupstaggingapi_resources.existing.resource_tag_mapping_list.*.resource_arn)
function_name = each.value
}
output "functions" {
value = data.aws_lambda_function.existing.*
}
# example of information available with this data source
output "functions_runtime" {
value = {for fn, result in data.aws_lambda_function.existing: fn => result.runtime}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.