将现有 Azure 资源导入本地 Terraform 状态文件
Posted
技术标签:
【中文标题】将现有 Azure 资源导入本地 Terraform 状态文件【英文标题】:Import existing Azure resources into local Terraform state file 【发布时间】:2021-10-08 15:01:50 【问题描述】:在我们开始采用 Terraform 之前,我们有大量的 Azure 资源是在不久前手动创建的。显然,现在这意味着我们有大量的协调工作要做,就将我们的 terraform 状态文件与我们的 Azure 资源同步而言。
通过 Terraform Import 命令单独导入现有资源甚至不是我们想要考虑的选项,因为这不仅很麻烦,而且由于这里涉及的资源数量庞大,而且会很耗时。
是否有另一种方法可以批量或一次操作将这些现有资源同步/导入到我们的本地状态文件?
【问题讨论】:
Google 的 Terraformer 会使资源发现稍微容易一些,但您会考虑迭代地执行此操作,因此您可以包装命令以使其稍微好一点。 【参考方案1】:说实话,这是目前 Terraform 的缺点之一。我建议创建一个包含所有资源导入命令的电子表格,
就像 terraform import azurerm_xxx.xxx /subscriptions/XXXXXXXXX/resource/example 然后下一行一样,一遍又一遍。然后,您可以复制整个顺序列表并将其粘贴 1 次到终端(您正在执行 terraform 导入的地方),然后按 Enter。这需要一段时间,但它会起作用。
【讨论】:
以上是关于将现有 Azure 资源导入本地 Terraform 状态文件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Azure ARM 模板将 VM 部署到资源组“A”并引用资源组“B”中的现有密钥保管库?
使用 AWS CLI 将现有资源导入 CloudFormation
当我在 Visual Studio 2017 的解决方案资源管理器中右键单击 Web 项目时,无法将添加->现有项目视为 Azure Web 作业选项