首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将管道任务中的变量传递到terraform任务中,并将其应用到terraform代码中?

如何将管道任务中的变量传递到terraform任务中,并将其应用到terraform代码中?
EN

Stack Overflow用户
提问于 2021-11-18 00:41:21
回答 1查看 107关注 0票数 1

因此,我有一个包含任务的管道,其中我通过Powershell检查日期。

代码语言:javascript
复制
 - task: PowerShell@2
      inputs:
        targetType: 'inline'
        script: |
          $iso8601_time = Get-Date -Format "o"
          echo "##vso[task.setvariable variable=pitr_time;]$iso8601_time"
        displayName: "Get point-in-time record before launching migration"

稍后,我将尝试在terraform任务中使用此日期,以基于PowerShell任务中的DateTime创建数据库。

如果我使用

代码语言:javascript
复制
echo "##vso[task.setvariable variable=pitr_time;]$iso8601_time"

我创建了一个名为pitr_time的环境变量,可以将其传递给同一管道中的其他任务。

因此,我现在有了第二个使用此环境变量的任务。

代码语言:javascript
复制
- stage: DeployInfraPOC
  dependsOn: BuildInfraPOC
  variables:
    env: poc
    # TODO: check if variable get transfered to tf.
    TF_VAR_PITR: $(pitr_time)
  jobs: 
  - template: templates/deploy-infra.yml
    parameters:
      env: poc
      armServiceConnection: "Service connection devops"
      projectRoot: $(System.DefaultWorkingDirectory)
      planArtifactName: "pitr-database-migration-poc-$(Build.BuildId).tfplan

现在,当我查看terraform文档时,我发现我必须使用前缀"TF_VAR_“来定义它,才能使用我想要传递的变量。

但现在我的问题是:如何在Terraform中使用此变量?

我想我可以将它添加到我的variables.tf文件中,如下所示

代码语言:javascript
复制
variable "TF_VAR_PITR" {
  description = "Env var - Point-in-time restore."
  type = string
}

但是当我想在main.tf中调用我的变量时,它似乎不起作用,如下所示

代码语言:javascript
复制
resource "azurerm_mssql_database" "mssqldb" {
  name                          = "db-bkup-temp-pitr"
  server_id                     = data.azurerm_mssql_server.mssqlsrv.id
  create_mode                   = "PointInTimeRestore"
  creation_source_database_id   = "/subscriptions/##############"
  restore_point_in_time         = var.TF_VAR_PITR
  }

我做错了什么?有没有更好的选择?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-18 00:53:57

如果您的环境变量是TF_VAR_PITR,则TF变量称为PITR

代码语言:javascript
复制
variable "PITR" {
  description = "Env var - Point-in-time restore."
  type = string
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70013247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档