在terraform documentation中,为我们提供了以下标记。我找不到关于“ b”字段的目的以及通常应如何使用的内容。
resource "aws_s3_bucket" "b" {
bucket = "my_tf_test_bucket"
}
resource "aws_s3_bucket_policy" "b" {
bucket = "${aws_s3_bucket.b.id}"
policy =<<POLICY
{
"Version": "2012-10-17",
"Id": "MYBUCKETPOLICY",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::my_tf_test_bucket/*",
"Condition": {
"IpAddress": {"aws:SourceIp": "8.8.8.8/32"}
}
}
]
}
POLICY
}
答案 0 :(得分:3)
“ b”只是您正在创建的资源的名称。
在“块”中定义了地形资源,每个资源块都会创建给定TYPE(第一个参数)和NAME(第二个参数)的资源。类型和名称的组合必须唯一。
因此,在您的示例中,您正在创建TYPE aws_s3_bucket
和NAME b
的资源。
定义的每个资源都有一个id
,您可以使用TYPE.NAME.id之类的语法,例如${aws_s3_bucket.b.id}
您可以在以下文档中找到更多信息:https://www.terraform.io/docs/configuration/resources.html