因此,我有一个包含任务的管道,其中我通过Powershell检查日期。
- 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创建数据库。
如果我使用
echo "##vso[task.setvariable variable=pitr_time;]$iso8601_time"我创建了一个名为pitr_time的环境变量,可以将其传递给同一管道中的其他任务。
因此,我现在有了第二个使用此环境变量的任务。
- 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文件中,如下所示
variable "TF_VAR_PITR" {
description = "Env var - Point-in-time restore."
type = string
}但是当我想在main.tf中调用我的变量时,它似乎不起作用,如下所示
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
}我做错了什么?有没有更好的选择?
发布于 2021-11-18 00:53:57
如果您的环境变量是TF_VAR_PITR,则TF变量称为PITR
variable "PITR" {
description = "Env var - Point-in-time restore."
type = string
}https://stackoverflow.com/questions/70013247
复制相似问题