将环境变量与工作空间配合使用

Terraform 使用环境变量来定制其行为的各个方面。 环境变量用于增加用于调试的输出详细程度或设置很少使用的运行时参数。

例如,并行性是数字标志范围在 1 and 256 之间的环境变量之一,缺省值为 10。 当您在运行时执行 terraform planterraform apply 时,并行性用于配置在并发操作上出错或在非标准速率限制期间使用的基础结构提供程序。

只能使用工作空间更新 API 和传递 JSON 文件的 CLI 来设置环境变量。 请参阅 Workspace update CLI 命令 以获取更多详细信息。

如果工作区是由 IBM Cloud 项目 服务创建的,请参阅 使用 CLI 启用 Terraform 日志,了解如何设置环境变量。

用途

将 TF_CLI_ARGS 作为环境变量传递

您可以将 Terraform 命令行参数 TF_CLI_ARGS 作为环境变量 (例如 TF_CLI_ARGS_plan) 和 TF_CLI_ARGS_apply 在 Schematics 工作空间中传递以定制操作。

Terraform 读取这些环境变量并应用它们的运行时。 有关 Terraform 命令行参数的更多信息,请参阅 TF_CLI_ARGS and TF_CLI_ARGS_name

示例设置并行性或 TF_LOGS

此处显示的示例可用于设置要传递到 Terraform 的任何环境变量。

在创建时设置并行性

代码块是用于使用作为环境变量传递的并行性的 Schematics 创建 API 创建工作空间的样本有效内容。

{
    "name": "bb",
    "type": [
        "terraform_v1.4"
    ],
    "template_repo": {
        "url": "url"
    },
    "template_data": [
        {
        "folder": ".",
        "type": "terraform_v1.4",
        "variablestore": [
        {
          "value": "<val>",
          "name": "ibmcloud_api_key",
          "type": "string",
          "secure": true
        }
        ],
        "env_values": [
        {
          "TF_LOG": "debug"
        },
        {
          "TF_CLI_ARGS_apply": "-parallelism=20"
        },
        {
          "TF_CLI_ARGS_plan": "-parallelism=20"
        }
        ]
    }
    ]
}

在创建后设置并行性

有效内容中的样本 env_values 块,用于使用 Schematics 工作空间 更新 API来更新环境变量。 有关更详细的示例,请参阅 更新工作空间输入变量 API。

"env_values": [
    {
        "TF_CLI_ARGS_plan": "-parallelism=20"
    },
    {
        "TF_LOG": "debug"
    }
    ]

设置目录部署的并行性

只能在内容加载时设置环境变量。 请参阅目录文档以设置 TF_CLI_ARGS 环境变量。

Terraform 环境变量列表

IBM Cloud Schematics 支持以下环境变量用于调试目的。 有关特殊环境变量的更多信息,请参阅 环境变量

支持的环境变量
变量 描述 用途
TF_LOG 出现在标准错误上的详细日志。 支持值为 TRACE,DEBUG,INFO,WARN 或 ERROR "TF_LOG": "TRACE"
TF_LOG_PROVIDER 有关调试 Terraform 提供程序问题,请参阅 管理日志输出 "TF_LOG_PROVIDER": "TRACE"
TF_INPUT 用于禁用输入值提示的命令。 缺省值为 false0 "TF_INPUT": "0"
TF_CLI_ARGSTF_CLI_ARGS_name TF_CLI_ARGS 指定命令行的其他自变量。 这允许在云基础架构环境中实现更轻松的自动化。 还要在您自己的系统上修改 Terraform 的缺省行为。TF_CLI_ARGSTF_CLI_ARGS_name 仅适用于非内容目录。 "TF_CLI_ARGS_apply": "-parallelism=20"
TF_REGISTRY_DISCOVERY_RETRY 设置远程注册表客户机可以针对客户机连接错误尝试的最大请求重试次数。 "TF_REGISTRY_DISCOVERY_RETRY": "10"
TF_REGISTRY_CLIENT_TIMEOUT 设置为增加外来情况。 远程注册表的缺省值为 10 seconds "TF_REGISTRY_CLIENT_TIMEOUT": "15"
TF_IGNORE 输出调试消息以显示忽略的文件和文件夹。 当您使用 .terraformignore 文件调试存储库时,这很有用。 默认值为 trace "TF_IGNORE": "trace"
TF_PARALLELISM 在运行时操作中读取并行性环境变量,并仅针对内容目录重置所有 Schematics 操作的并行性值。TF_PARALLELISM 仅适用于内容目录。 "TF_PARALLELISM": "20"

支持使用其他环境变量来调试 Terraform 提供程序问题,请参阅 管理日志输出