下面是我的代碼片段,具有創建 2 個 SQS 和 DeadLetterQueue 的預期行為。我已經能夠在這里的偉大思想的幫助下修復一些以前的錯誤訊息。當我執行 terraform 計劃時,我收到以下錯誤訊息。錯誤訊息在我的代碼下方。
.tfvars
sqs_queue_names = ["CloudTrail_Event_One", "CloudTrail_SQS_Event_Two"]
variable.tf
variable "sqs_queue_names"{
type = set(string)
}
output.tf
output "sqs_queue_arn" {
value = aws_sqs_queue.CloudTrail_SQS.arn
description = "The ARN of the SQS queue."
}
output "sqs_queue_id"{
value = aws_sqs_queue.CloudTrail_SQS.id
description = "The URL for the created Amazon SQS queue."
}
data "aws_iam_policy_document" "policy_document"{
statement{
actions = [
"sqs:GetQueueUrl",
"sqs:ReceiveMessage"
]
effect = "Allow"
resources =[
"${aws_sqs_queue.CloudTrail_SQS[each.key].arn}
ERROR MESSAGES:
Error: Missing resource instance key
│
│ on output.tf line 10, in output "sqs_queue_arn":
│ 10: value = aws_sqs_queue.CloudTrail_SQS.arn
│
│ Because aws_sqs_queue.CloudTrail_SQS has "for_each" set, its attributes
│ must be accessed on specific instances.
Error: Missing resource instance key
│
│ on output.tf line 11, in output "sqs_queue_id":
│ 11: value = aws_sqs_queue.CloudTrail_SQS.id
│
│ Because aws_sqs_queue.CloudTrail_SQS has "for_each" set, its attributes
│ must be accessed on specific instances.
on iam_role.tf line 40, in data "aws_iam_policy_document" "policy_document":
│ 40: "${aws_sqs_queue.CloudTrail_SQS[each.key].arn}"
│
│ The "each" object can be used only in "module" or "resource" blocks, and
│ only when the "for_each" argument is set.
uj5u.com熱心網友回復:
如果要回傳使用創建的 SQS 佇列屬性串列for_each,則可以使用值:
output "sqs_queue_arn" {
value = values(aws_sqs_queue.CloudTrail_SQS)[*].arn
description = "The ARN of the SQS queue."
}
output "sqs_queue_id"{
value = values(aws_sqs_queue.CloudTrail_SQS)[*].id
description = "The URL for the created Amazon SQS queue."
}
同樣,對于您將使用的資料源:
resources = values(aws_sqs_queue.CloudTrail_SQS)[*].arn
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/322159.html
標籤:亚马逊网络服务 地形 terraform-provider-aws
上一篇:在SQL中,如果行中的初始值<或>0,如何回傳單獨的列之和?
下一篇:如何解決在SQL中更新表的錯誤?
