j7s*_*kov 2 amazon-s3 terraform terraform-provider-aws
我试图防止 terraform 中的存储桶被删除。该存储桶保存我的 terraform 远程状态文件。到处都说要用lifecycle_configuration=prevent_destroy。terraform 文档说使用新参数aws_s3_bucket_lifecycle_configuration。我有这样的设置:
# Prevent deletion\nresource "aws_s3_bucket_lifecycle_configuration" "tf_remote_state_s3_lifecycle_config" {\n bucket = aws_s3_bucket.tf_remote_state.id\n rule {\n id = "prevent_destroy"\n status = "Enabled"\n }\n \n}\nRun Code Online (Sandbox Code Playgroud)\n我收到此错误:
\n\xe2\x95\xb7\n\xe2\x94\x82 Error: error creating S3 Lifecycle Configuration for bucket (XXXX): InvalidRequest: At least one action needs to be specified in a rule\n\xe2\x94\x82 status code: 400, request id: XXXX, host id: XXXX\n\xe2\x94\x82 \n\xe2\x94\x82 with aws_s3_bucket_lifecycle_configuration.tf_remote_state_s3_lifecycle_config,\n\xe2\x94\x82 on main.tf line 34, in resource "aws_s3_bucket_lifecycle_configuration" "tf_remote_state_s3_lifecycle_config":\n\xe2\x94\x82 34: resource "aws_s3_bucket_lifecycle_configuration" "tf_remote_state_s3_lifecycle_config" {\n\xe2\x94\x82 \n\xe2\x95\xb5\nRun Code Online (Sandbox Code Playgroud)\nlifecycle_configuration=prevent_destroyin相当于什么aws_s3_bucket_lifecycle_configuration?
您混淆了lifecycleterraform 的配置和aws_s3_bucket_lifecycle_configuration/ lifecycle_rule,这是控制存储桶中对象生命周期的 S3 功能。两者完全没有任何关系,而且是完全不相关的事情。
解决方案:坚持使用/lifecycle { prevent_destroy = true }在您的 上使用aws_s3_bucket,不要使用aws_s3_bucket_lifecycle_configuration。
https://www.terraform.io/language/meta-arguments/lifecycle
https://registry.terraform.io/providers/hashicorp%20%20/aws/latest/docs/resources/s3_bucket_lifecycle_configuration
| 归档时间: |
|
| 查看次数: |
2987 次 |
| 最近记录: |