如何使用count参数控制SQS资源创建?代码中1和0分别代表什么含义
问题解答
1. 如何在创建SQS资源时指定使用count元素进行配置
count是Terraform原生支持的资源元参数,可以直接在aws_sqs_queue资源块内声明配置,完整参考示例如下:
# 先定义控制SQS是否创建的开关变量 variable "enabled" { type = bool description = "是否启用CloudTrail SQS队列" default = true } # SQS资源块中加入count参数控制创建逻辑 resource "aws_sqs_queue" "CloudTrail_SQS" { count = var.enabled ? 1 : 0 name = "cloudtrail-event-notify-queue" delay_seconds = 0 max_message_size = 262144 message_retention_seconds = 86400 receive_wait_time_seconds = 20 }
如果需要批量创建多个同配置的SQS队列,也可以直接把count设为对应数值,比如count = 3就会生成3个配置完全一致的SQS队列,后续可通过aws_sqs_queue.CloudTrail_SQS[索引下标]的方式引用对应队列的属性。
2. 代码中count参数的1和0的含义
你给出的代码使用了Terraform支持的三元表达式语法判断条件 ? 条件成立返回值 : 条件不成立返回值,两个数值的含义如下:
- 1:当
var.enabled为true时count取该值,代表当前资源块需要创建1个对应的SQS队列实例 - 0:当
var.enabled为false时count取该值,代表当前资源块不创建任何SQS队列实例,相当于跳过该资源的部署流程
内容的提问来源于stack exchange,提问作者dcloud
相关产品推荐
相关产品推荐

