ワークスペースでの環境変数の使用
Terraform は、環境変数を使用して動作のさまざまな側面をカスタマイズします。 環境変数は、デバッグの出力の冗長性を高めるため、またはめったに使用されないランタイム・パラメーターを設定するために使用されます。
たとえば、parallelism は環境変数のひとつで、数値フラグの範囲は 1 and 256 です。デフォルト値は 10 です。 並列処理は、実行時に terraform plan および terraform apply を実行する際、同時操作でエラーが発生したり、非標準のレート制限が適用されたりする場合に、インフラストラクチャプロバイダーを設定するために使用されます。
環境変数は、ワークスペース更新 API と、JSON ファイルを渡す CLI を使用してのみ設定できます。 詳しくは、 ワークスペース更新 CLI コマンド を参照してください。
IBM Cloud projects serviceによってワークスペースが作成された場合は、環境変数の設定方法として CLIを使ったTerraformログの有効 化を参照してください。
使用法
TF_CLI_ARGS を env-vars として渡す
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 Create 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"
}
]
}
]
}
作成後の並列処理の設定
Schematics Workspace Update APIを使用して環境変数を更新するためのペイロード内のサンプル env_values ブロック。 詳細な例については、 ワークスペース入力変数の更新 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 |
入力値を入力するためのプロンプトを無効にするコマンド。 デフォルト値は false または 0 です。 | "TF_INPUT": "0" |
TF_CLI_ARGS および TF_CLI_ARGS_name |
TF_CLI_ARGS はコマンド・ラインに追加の引数を指定します。 これにより、クラウド・インフラストラクチャー環境での自動化が容易になります。 また、ご使用のシステムで Terraform のデフォルトの動作を変更します。TF_CLI_ARGS および TF_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 プロバイダーの問題をデバッグするために追加の環境変数がサポートされています。 ログ出力の管理を参照してください。