1.7.18.5.1. replace-provider

terraform state replace-provider 命令可以替换状态文件中资源对象所使用的 Provider.

1.7.18.5.1.1. 用法

terraform state replace-provider [options] FROM_PROVIDER_FQN TO_PROVIDER_FQN

该命令会更新所有使用 from 的 Provider 的资源,将它们使用的 Provider 更新为 to Provider。这让我们可以更新状态文件中资源所使用的 Provider 的源。

该命令在进行任意修改之前会先生成一个备份文件。备份机制不可关闭。

支持以下可选参数:

  • -auto-approve:跳过交互式提示确认环节
  • -lock=false:执行时是否先锁定状态文件。如果其他人可能同时对同一工作区运行命令,则这是危险的。
  • -lock-timeout=0s:除非使用 -lock=false 禁用锁定,否则命令 Terraform 为上锁操作设置一个超时时长。持续时间语法是一个数字后跟一个时间单位字母,例如“3s”表示三秒。

以下是使用 local Backend 时可用的遗留参数:

  • -backup=FILENAME:指定源状态文件的备份地址,默认为源状态文件加上".backup"后缀
  • -bakcup-out=FILENAME:指定目标状态文件的备份地址,默认为目标状态文件加上".backup"后缀
  • -state=FILENAME:源状态文件地址,默认为当前 Backend 或是"terraform.tfstate"
  • -state-out=FILENAME:目标状态文件地址。如果不指定则使用源状态文件。可以是一个已经存在的文件或新建一个文件

1.7.18.5.1.2. 样例

下面的示例将 hashicorp/aws Provider 程序替换为 acme 的复刻版本,该 Provider 托管在 registry.acme.corp 的私有注册表中:

$ terraform state replace-provider hashicorp/aws registry.acme.corp/acme/aws

results matching ""

    No results matching ""