如何将terraform状态集成到github操作工作流中?

如何将terraform状态集成到github操作工作流中?,terraform,github-actions,terraform-provider-azure,Terraform,Github Actions,Terraform Provider Azure,我有github操作工作流,概述了在Azure中旋转terraform以创建资源的简单过程。我缺少的是如何集成terraform状态文件,以便在连续运行此工作流时,它应该将当前状态与main.tf文件进行比较,并且只允许净更改。目前,如果我按顺序运行,第二次将始终失败,因为资源将已在Azure中创建 我如何配置下面的github工作流以允许terraform状态文件比较?我还没有找到一个这样做的源 github回购布局: github操作工作流: name: Terraform deploy

我有github操作工作流,概述了在Azure中旋转terraform以创建资源的简单过程。我缺少的是如何集成terraform状态文件,以便在连续运行此工作流时,它应该将当前状态与main.tf文件进行比较,并且只允许净更改。目前,如果我按顺序运行,第二次将始终失败,因为资源将已在Azure中创建

我如何配置下面的github工作流以允许terraform状态文件比较?我还没有找到一个这样做的源

github回购布局:

github操作工作流:

name: Terraform deploy to Azur

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    
    steps:
    - name: "Checkout"
      uses: actions/checkout@master
      
    - name: "Terraform Init"
      uses: hashicorp/terraform-github-actions@master
      with:
       tf_actions_version: 0.12.13
       tf_actions_subcommand: "init"

    - name: "Terraform Plan"
      uses: hashicorp/terraform-github-actions@master
      with:
       tf_actions_version: 0.12.13
       tf_actions_subcommand: "plan"
       args: -var="client_secret=${{ secrets.clientSecret }}"
             -var="client_id=${{ secrets.clientId }}"
             -var="tenant_id=${{ secrets.tenantId }}"
             -var="sub=${{ secrets.sub }}"
                  
    - name: "Terraform Apply"
      uses: hashicorp/terraform-github-actions@master
      with:
       tf_actions_version: 0.12.13
       tf_actions_subcommand: "apply"
       args: -var="client_secret=${{ secrets.clientSecret }}"
             -var="client_id=${{ secrets.clientId }}"
             -var="tenant_id=${{ secrets.tenantId }}"
             -var="sub=${{ secrets.sub }}"    

您需要将状态文件保存到Terraform,以便它将状态文件存储在外部某个位置,以便在每次运行时可以引用和更新。

就是这样,之所以错过了状态文件,是因为我同时也在寻找后端的安全保护,也就是说,没有像“access\u key=hardcoded guid”这样的调用,所以我还需要阅读环境变量和存储秘密