如何使用 Azure DevOps Pipeline 重新部署 Azure 资源?

How to re-deploy Azure Resources using AzDevOps Pipeline?

我有一些 Azure 资源(Function App、Cosmos 等),我已在 Azure Devops 管道中使用 terraform init-plan-apply 成功部署到资源组中。从我的本地 CLI,我可以更改 main.tf 中的资源并重新部署,大概是因为我在本地有 tf 状态。但是,当我尝试使用管道进行 redploy 时,出现了常见的错误

Error: A resource with the ID "/subscriptions/xxxxxx-xxxx-xxxx-xxxx/resourceGroups/my -rg" already exists - to be managed via Terraform this resource needs to be imported into the State. Please see the resource documentation for "azurerm_resource_group" for more information. │

当我尝试使用描述的配置进行导入时 here 我得到了无用的错误

##[error]Error: There was an error when attempting to execute the process '/usr/local/bin/terraform'. This may indicate the process failed to start. Error: spawn /usr/local/bin/terraform ENOENT

我是否以正确的方式考虑使用 Terraform 的管道?我应该尝试导入资源组,还是有更好的方法使用 terraform 重新部署资源?

没错,tf 状态没有保存在 Azure DevOps 代理上。

常见的方式是使用Azure Storage账户来保存tf状态。

你可以找微软官方教程here

您可以找到更多指南 here, here and here