Amazon web services 无法设置计算属性,但已为“设置了值”;地区“;

Amazon web services 无法设置计算属性,但已为“设置了值”;地区“;,amazon-web-services,terraform,Amazon Web Services,Terraform,我不熟悉Terraform,很抱歉问了这么一个基本的问题。我正在尝试使用terraform创建一个s3存储桶资源。下面是我的代码 resource "aws_s3_bucket" "my_very_first_bucket" { bucket = "hetal-s3-my-very-first-bucket" region = "ap-south-1" } 已成功执行命令terraform init,但

我不熟悉Terraform,很抱歉问了这么一个基本的问题。我正在尝试使用terraform创建一个s3存储桶资源。下面是我的代码

resource "aws_s3_bucket" "my_very_first_bucket" { 
  bucket = "hetal-s3-my-very-first-bucket" 
  region = "ap-south-1"
}
已成功执行命令
terraform init
,但在执行
terraform apply
时,我发现以下错误

C:\Users\Hetal Rachh\IdeaProjects\demo>terraform apply
provider.aws.region
  The region where AWS operations will take place. Examples
  are us-east-1, us-west-2, etc.

  Enter a value: ap-south-1

╷
│ Error: Computed attributes cannot be set
│
│   on s3.tf line 3, in resource "aws_s3_bucket" "my_very_first_bucket":
│    3:   region = "ap-south-1"
│
│ Computed attributes cannot be set, but a value was set for "region".
╵

我能知道我做错了什么吗?请帮忙。提前感谢。

您收到的错误是因为AWS提供程序未将
区域
用于S3资源。但是,S3在成功创建后提供了一个具有相同名称的属性。您遇到的问题可能是因为您没有设置任何与提供程序相关的配置。您可以在
s3.tf
文件的顶部添加以下内容:

provider aws {
  region = "ap-south-1"
}
对于S3存储桶,您将拥有:

resource "aws_s3_bucket" "my_very_first_bucket" { 
  bucket = "hetal-s3-my-very-first-bucket" 
}

以下是S3的Terraform提供程序文档:。在底部,请参见S3的导出属性:。

是否为区域定义了变量?您是否在同一目录或类似目录中有
variables.tf
文件?不,我没有定义类似@markoe的任何内容这就是您所有的代码?如果没有,请粘贴所有内容(编辑问题),如果有类似的内容,请小心忽略任何敏感信息。什么是“导出属性”?使用任何Terraform提供程序创建的每个资源将为您提供一组属性,在创建资源后可以查询这些属性。对于S3 bucket,第二个URL显示所有可供您使用的属性。这使您能够保持代码干燥,并将已创建资源中的参考值作为配置其他资源的值。这里有一个更详细的解释:。