작업공간에서 환경 변수 사용

Terraform은 환경 변수를 사용하여 동작의 여러 측면을 사용자 정의합니다. 환경 변수는 디버깅을 위한 출력 상세도를 늘리거나 거의 사용되지 않는 런타임 매개변수를 설정하는 데 사용됩니다.

예를 들어, parallelism은 숫자 플래그 범위가 1 and 256 인 환경 변수 중 하나이며, 기본값은 10 입니다. 병렬 처리는 런타임에 terraform plan terraform apply 을 실행할 때, 동시 작업 시 오류가 발생하거나 비표준 속도 제한이 적용되는 인프라 제공자를 구성하는 데 사용됩니다.

환경 변수는 작업공간 업데이트 API및 JSON 파일을 전달하는 CLI를 사용해서만 설정할 수 있습니다. 자세한 정보는 Workspace update CLI 명령 을 참조하십시오.

IBM Cloud 프로젝트 서비스에서 워크스페이스를 만든 경우 환경 변수를 설정하는 방법에 대한 참조로 CLI를 사용하여 Terraform 로그 활성화하기를 참조하세요.

사용량

TF_CLI_ARGS를 env-vars로 전달

Schematics 작업공간에서 Terraform 명령행 인수 TF_CLI_ARGS 를 환경 변수 (예: TF_CLI_ARGS_plan) 및 TF_CLI_ARGS_apply 로 전달하여 조작을 사용자 정의할 수 있습니다.

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"
        }
        ]
    }
    ]
}

작성 후 병렬 처리 설정

Schematics Workspace 업데이트 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_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 제공자 문제를 디버깅하기 위해 추가 환경 변수가 지원됩니다. 로그 출력 관리를 참조하십시오.