Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terraform 错误:升级后处于状态的资源实例数据无效_Terraform_Terraform Provider Aws - Fatal编程技术网

Terraform 错误:升级后处于状态的资源实例数据无效

Terraform 错误:升级后处于状态的资源实例数据无效,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我一直在将terraform配置从0.11升级到0.13,并从状态文件中删除一个模块(使用terraform state rm module.mymodulename) 删除上面的资源后,我现在在运行plan命令时遇到了一大堆错误。现在我不太确定这是否与我删除模块有关,还是与升级有关。我可以看到,对于aws_ecs_服务,placement_strategy属性已被弃用,对于如何安全地将其从状态文件中删除,我有点困惑 Placement_策略不是我在参考资料中定义的,只是早期版本的默认值 有人对

我一直在将terraform配置从0.11升级到0.13,并从状态文件中删除一个模块(使用terraform state rm module.mymodulename)

删除上面的资源后,我现在在运行plan命令时遇到了一大堆错误。现在我不太确定这是否与我删除模块有关,还是与升级有关。我可以看到,对于aws_ecs_服务,placement_strategy属性已被弃用,对于如何安全地将其从状态文件中删除,我有点困惑

Placement_策略不是我在参考资料中定义的,只是早期版本的默认值

有人对如何解决下面的问题有什么建议吗?我需要将其备份并运行,因为这是为了我们的开发环境。我倾向于删除资源“aws\U ecs\U服务”“myappadmin服务”并再次导入它

terraform plan

Error: Invalid resource instance data in state

  on ecs-instance-role.tf line 23:
  23: resource "aws_iam_instance_profile" "ecs-instance-profile" {

Instance aws_iam_instance_profile.ecs-instance-profile data could not be
decoded from the state: unsupported attribute "roles".

Error: Invalid resource instance data in state

  on modules\myappadmin\service.tf line 1:
   1: resource "aws_ecs_service" "myappadmin-service" {

Instance module.myappadmin.aws_ecs_service.myappadmin-service data could not be
decoded from the state: unsupported attribute "placement_strategy".

Error: Invalid resource instance data in state

  on modules\myappadmin\service.tf line 1:
   1: resource "aws_ecs_service" "myappadmin-service" {

Instance module.myappadmin.aws_ecs_service.myappadmin-service data could not be
decoded from the state: unsupported attribute "placement_strategy".

Error: Invalid resource instance data in state

  on modules\myappadmin\service.tf line 1:
   1: resource "aws_ecs_service" "myappadmin-service" {

Instance module.myappadmin.aws_ecs_service.myappadmin-service data could not be
decoded from the state: unsupported attribute "placement_strategy".

Error: Invalid resource instance data in state

  on modules\myappadmin\service.tf line 1:
   1: resource "aws_ecs_service" "myappadmin-service" {

Instance module.myappadmin.aws_ecs_service.myappadmin-service data could not be
decoded from the state: unsupported attribute "placement_strategy".

Error: Invalid resource instance data in state

  on modules\myappadmin\service.tf line 1:
   1: resource "aws_ecs_service" "myappadmin-service" {

Instance module.myappadmin.aws_ecs_service.myappadmin-service data could not be
decoded from the state: unsupported attribute "placement_strategy".

Error: Invalid resource instance data in state

  on modules\myappadmin\service.tf line 1:
   1: resource "aws_ecs_service" "myappadmin-service" {

Instance module.myappadmin.aws_ecs_service.myappadmin-service data could not be
decoded from the state: unsupported attribute "placement_strategy".
我不确定这是否能完全解释您所看到的情况,但其中一个错误似乎与此有关,这表明您正在同时升级Terraform和AWS提供商

为了更容易理解正在发生的事情,我建议一次只升级一个组件,这样您就可以在开始下一次升级之前进行一次升级所需的任何更改,这样您就不必同时关联各种不同组件的发行说明

鉴于您在这里看到的情况,我建议您对您的案例进行以下订购:

  • 将AWS提供程序升级到主版本2中的最新可用版本,在我撰写本文时为2.70.0。用于尝试查看遇到的任何错误需要进行哪些更改
  • 然后再次将AWS提供程序升级到主版本3中的最新可用版本,在我撰写本文时为3.2.0。用于尝试查看遇到的任何错误需要进行哪些更改
  • 将Terraform CLI升级到最新的v0.12版本,在我撰写本文时为v0.12.29。请参阅,其中描述了如何使用该版本中包含的自动升级工具,还描述了升级工具无法自动处理的一些不太常见的情况
  • 最后,将Terraform CLI升级到最新的v0.13版本。请参阅,查看是否需要对升级的配置进行任何更改。(如果您只使用“官方”地形提供程序,如AWS提供程序,则可能不需要进行任何更改,但仍然可以运行自动升级工具来查找。)
虽然分四个步骤而不是一个步骤来完成这项工作似乎更为艰巨,但这意味着在每个步骤中,您只需要担心一组发行说明,并且您可以将需要进行的任何调试集中在一个组件上

请注意,上面我描述了一次升级一个主要版本,而不是提前跳过。Terraform CLI尤其不支持直接从Terraform v0.11升级到v0.13,因为Terraform v0.13中不再存在Terraform v0.12的自动升级工具。AWS提供程序可能直接从v1升级到v3,但要做到这一点,您需要同时查阅两个版本的发行说明

在上述过程中,您可能会在某个时候再次遇到这些错误。如果这是真的,您将能够了解是哪个更改导致了问题,并可能针对该组件报告问题(AWS提供程序或Terraform CLI,取决于您刚刚升级的组件)。

我不确定这是否充分解释了您看到的问题,但其中一个错误似乎与,这表明您正在同时升级Terraform和AWS提供商

为了更容易理解正在发生的事情,我建议一次只升级一个组件,这样您就可以在开始下一次升级之前进行一次升级所需的任何更改,这样您就不必同时关联各种不同组件的发行说明

鉴于您在这里看到的情况,我建议您对您的案例进行以下订购:

  • 将AWS提供程序升级到主版本2中的最新可用版本,在我撰写本文时为2.70.0。用于尝试查看遇到的任何错误需要进行哪些更改
  • 然后再次将AWS提供程序升级到主版本3中的最新可用版本,在我撰写本文时为3.2.0。用于尝试查看遇到的任何错误需要进行哪些更改
  • 将Terraform CLI升级到最新的v0.12版本,在我撰写本文时为v0.12.29。请参阅,其中描述了如何使用该版本中包含的自动升级工具,还描述了升级工具无法自动处理的一些不太常见的情况
  • 最后,将Terraform CLI升级到最新的v0.13版本。请参阅,查看是否需要对升级的配置进行任何更改。(如果您只使用“官方”地形提供程序,如AWS提供程序,则可能不需要进行任何更改,但仍然可以运行自动升级工具来查找。)
虽然分四个步骤而不是一个步骤来完成这项工作似乎更为艰巨,但这意味着在每个步骤中,您只需要担心一组发行说明,并且您可以将需要进行的任何调试集中在一个组件上

请注意,上面我描述了一次升级一个主要版本,而不是提前跳过。Terraform CLI尤其不支持直接从Terraform v0.11升级到v0.13,因为Terraform v0.13中不再存在Terraform v0.12的自动升级工具。AWS提供程序可能直接从v1升级到v3,但要做到这一点,您需要同时查阅两个版本的发行说明

有可能