Terraform
IBM Cloud Schematics 작업 공간에 관한 자주 묻는 질문에 대한 답변은 다음 섹션으로 분류되어 있습니다.
IBM Cloud Schematics는 다중 Terraform 제공자 버전을 지원합니까?
예. IBM Cloud Schematics는 다중 Terraform 제공자 버전을 지원합니다. 프로바이더 버전을 포함하여 Terraform 프로바이더 블록을 추가해야 합니다. 기본적으로 이 제공자는 현재 버전인 1.21.0 을 실행하며, 1.20.1, 1.20.0, 1.19.0, 1.18.0 등 이전 4개 버전을
지원합니다.
다중 제공자 구성 예:
terraform{
required_providers{
ibm = ">= 1.21.0" // Error !! version unavailable.
ibm = ">= 1.20.0" // Execute against latest version.
ibm = "== 1.20.1" // Executes version v1.20.1.
}
}
현재, 버전 1.2 1.0이 릴리스되었습니다. 자세한 정보는 제공자 버전 을 참조하십시오.
Terraform 버전을 업데이트하는 방법
IBM Cloud Schematics 는 이전 버전의 Terraform을 더 이상 지원하지 않고 최신 Terraform 버전에 대한 지원을 도입합니다. 자세한 내용은 Schematics Terraform 지원 중단 수명 주기 및 지원 중단 일정을 참조하세요.
주제를 참고하여 한 버전의 Terraform에서 다른 버전으로 업그레이드할 수 있습니다
명령행을 사용하여 Git 저장소에서 pull latest 코드를 작성하는 방법은 무엇입니까?
명령행을 통해 IBM Cloud® Schematics 작업공간을 업데이트하려면 필요한 필드 name 가 필요합니다.
ibmcloud schematics workspace update --id <workspace-id> --file <updatefile.json> 명령을 실행해야 합니다. 샘플 updatefile.json에는 값이 있는 이름 필드가 포함되어 있습니다.
{
"name":"testworkspace"
}
런타임에서 사용되는 도구 및 유틸리티는 무엇입니까?
Schematics 런타임은 Universal Base Image( UBI-8 )를 사용하여 빌드되며, UBI-8 에 포함된 런타임 utilities/softwares 은 Terraform 프로비저닝 및 Ansible 액션에서 사용할 수 있습니다. 자세한 정보는 Schematics 런타임에서 사용되는 도구 및 유틸리티 의 목록을 참조하십시오.
CLI를 사용하여 작업공간을 작성할 때 Git 토큰 문제를 수정하는 방법
schematics workspace new --file schematic-file.json -g xxxx 명령을 사용하면 토큰되 '만 명령에 지정되므로 Access token creation failed status 이 발생합니다.
명령행을 통해 조작을 수행하기 전에 인증 을 확인해야 합니다. 그런 다음 schematics workspace new --file schematic-file.json --github-token xxxx 명령을 사용하여 작업공간을 작성하십시오. 자세한 정보는 ibmcloud schematics workspace new 명령을 참조하십시오.
작업공간을 작성하거나 업데이트할 때 권한 문제를 수정하는 방법은 무엇입니까?
워크스페이스를 업데이트하는 과정에서 역할 및 권한이 부족할 경우 권한 관련 문제가 발생합니다. 자세한 내용은 ‘사용자 액세스 관리’를 참조하십시오.
Terraform IBM 모듈을 Schematics 과 함께 사용하려면 어떻게 해야 하나요?
Schematics 워크스페이스와 함께 사전 구축된 오픈 소스 및 엔터프라이즈용 Terraform IBM 모듈을 사용할 수 있습니다. 이 모듈은 IBM Cloud 리소스 프로비저닝을 위한 모범 사례를 제공하며 Terraform 구성에서 직접 참조할 수 있습니다. 예를 들어, 기본 제공 모범 사례가 있는 리소스를 프로비저닝하는 데 terraform-ibm-modules를 사용할 수 있습니다.
Terraform IBM 모듈을 사용하면 어떤 이점이 있나요?
Terraform IBM 모듈(TIM)은 여러 가지 이점을 제공합니다:
- 사전 구축, 테스트 및 유지 관리: IBM.
- IBM Cloud 모범 사례 및 보안 가이드라인을 따르세요.
- 개발 시간과 복잡성을 줄이세요.
- 배포 전반에서 일관성을 보장합니다.
- 엔터프라이즈급 인프라 패턴을 지원합니다.
- 정기 업데이트 및 커뮤니티 지원
자세한 내용은 테라폼 소개 IBM 모듈을 참조하세요.
테스트 ID로 Schematics 서비스를 사용하는 방법은 무엇입니까?
테스트 ID는 글로벌 카탈로그 또는 리소스 컨트롤러 관련 API 호출을 설정할 때 유효한 IBM ID 로 간주됩니다. 액세스할 수 없는 경우 지원 서비스 문의 를 수행하십시오.
Git 저장소 폴더 복제를 제한하는 방법
기본적으로 UI를 통해 작업공간을 작성할 때 Schematics 의 기본값은 전체 Git 저장소 및 모든 서브디렉토리를 복제하는 것입니다. 복제되는 폴더를 제한하고 다운로드 성능을 향상시키려면 Use full repository 플래그를 선택 취소하십시오.
Schematics 에서는 Git 저장소에서 sub directories 를 다운로드하기 위해 작업공간 작성 및 작업공간 업데이트 API에 compact 플래그를 도입했습니다.
compact 플래그가 true로 설정된 경우, sub directories 를 재귀적으로 다운로드하여 저장하며, 그렇지 않은 경우 작업 공간을 생성할 때 전체 저장소를 계속 다운로드하여 저장할 수 있습니다.
get workspace API 를 실행하여 compact 플래그의 값을 확인하면 해당 응답을 얻을 수 있습니다. template_repo.url 필드가 전달된 경우에만 compact 플래그를 지정할 수 있습니다. 업데이트 시, 이 필드가 전달되지 않았으나 URL 가 전달된 경우, 다운로드 파일은 압축된 형태로 제공됩니다.
페이로드에서의 압축 사용은 .template_data[0].compact = true/false입니다. 자세한 정보는 Schematics 작업공간에 대한 압축 다운로드 를 참조하십시오.
삭제에 실패한 경우 작업공간을 삭제하는 방법
Schematics외부에서 자원이 삭제되는 경우 작업공간 삭제 조작은 이를 resource no longer exists 로 표시합니다.
작업 공간을 삭제해야 하며, 리소스가 사용 불가능한 것처럼 리소스를 파기해서는 안 됩니다. 자세한 정보는 작업공간 삭제를 참조하십시오.
신임 정보 또는 시크릿을 사용하여 Helm 차트를 배치하는 가장 좋은 방법은 무엇입니까?
가장 좋은 방법은 IBM Cloud 카탈로그를 사용하여 카탈로그 내에서 인증 정보를 보관하고 보안 설정됨으로 표시할 수 있는 Helm 차트를 관리하는 것입니다. 자세한 정보는 Helm과 관련된 카탈로그 목록 을 참조하십시오.
유지보수 활동으로 인한 작업 실패를 해결하는 방법
유지보수로 인한 예기치 않은 영향으로 Schematics 작업공간에서 실행 중인 활동이 실패합니다. 이러한 작업 공간과 현재 진행 중인 활동은 ‘ Failed ’로 표시됩니다. 그런 다음 사용자가 활동을 다시 실행할 수 있습니다. 자세한 정보는 작업공간 상태 다이어그램 을 참조하십시오.
Git 릴리스 태그를 어떻게 설정합니까?
2021/11/08 12:34:06 ----- New Action -----
2021/11/08 12:34:06 Request: RepoURL=https://xxxxxxxxxx/wh-hp-insights/hi-cloud-automation, workspaceSource=Schematics, Branch=2021.10, Release=, Folder=terraform-v2/workspace-hi-qa-automation-app
2021/11/08 12:34:06 Related Activity: action=UPDATE_WORKSPACE,processedBy=sandbox-6bcf8bffcd-rxbww_2478
2021/11/08 12:34:06 Getting download command
2021/11/08 12:34:11 Fatal, could not download repo, Failed to clone git repository, couldn't find remote ref "refs/heads/2021.10" (most likely invalid branch name is passed)
2021/11/08 12:34:12 Problems found with the Repository. Please Rectify and Retry
Release 매개변수가 비어 있고 Branch이(가) 릴리스 태그로 설정된 경우.
Schematics release 태그는 지원하지 않습니다. 저장소( )에서 해당 태그가 릴리스 태그인지 브랜치인지 식별하기 어렵기 때문입니다. Git URL Schematics API를 통해 release 태그를 설정해야 합니다.
올바르지 않은 작업공간 ID를 사용할 때 404오류 대신 403오류가 발생하는 이유는 무엇입니까?
curl -X GET https://schematics.cloud.ibm.com/v1/workspaces/badWOrkspaceId -H "Authorization: $IAM_TOKEN"
{"requestid":"3a3cbffe-e23a-4ccf-b764-042f7379c084","timestamp":"2021-11-11T17:00:07.169953698Z","messageid":"M1078","message":"Error while validating the location in the account. Verify you have permission to the location in the global catalog settings.","statuscode":403}
네, API에 변경 사항이 있습니다. 이제 먼저 위치를 확인한 후, 작업 공간에 대한 올바른 위치를 파악하지 못하면 404 오류 대신 403 오류를 반환합니다.
Terraform 디버그 로깅을 사용으로 설정하는 방법
샘플 페이로드에 표시된 대로 페이로드에서 Terraform 로그 디버그 TF_LOG=debug 추적을 설정하기 위한 환경 변수를 설정할 수 있습니다. 자세한 정보는 Schematics 작업공간 업데이트 를 참조하십시오.
{
"name": "sample",
"type": [
"terraform_v1.4"
],
"description": "terraform workspace",
"tags": [
],
"template_repo": {
"url": "<your repo>"
},
"template_data": [
{
"folder": ".",
"type": "terraform_v1.4",
"env_values":[
{
"TF_LOG":"debug"
}
]
}
]
}
클라우드 리소스를 작업공간으로 가져오는 방법
ibmcloud schematics workspace import --options value, -o value : Optional 명령 및 샘플 구문을 사용하여 명령행에서 가져오십시오. 자세한 정보는 Schematics 작업공간 가져오기 를 참조하십시오.
ibmcloud schematics workspaces import --id <workspace_id> --address <my terraform resource address> --resourceID <the CRN of the item to import> --options "-var IC_API_KEY=XXXXXXXX"
or
ibmcloud schematics workspaces import --id <workspace_id> --address <my terraform resource address> --resourceID <the CRN of the item to import> --options "--var-file=<path-to-var-file>"
작업 파일을 다운로드하는 방법은 무엇입니까?
예, Schematics 작업 파일을 다운로드할 수 있습니다. 자세한 정보는 Schematics 작업 파일 다운로드를 참조하십시오.
Terraform 리소스 제한시간 초과 실패를 해결하는 방법은 무엇입니까?
terraform 블록에 표시된 대로 서비스에 따라 제한시간 값을 5분 또는 10분씩 업데이트하거나 늘려야 합니다. 아니면 기본값을 사용하려면 null value 를 보내야 합니다.
variable "create_timeout"
{
type = String
description = "Timeout duration to create LogDNA instance in Schematics."
default = "15m"
}
TF_CLI_ARGS 환경 변수를 설정하는 방법은 무엇입니까?
아니요, Schematics 작업 공간 콘솔에서 직접 환경 변수 값을 설정할 수는 없습니다. 대신 Schematics API 또는 Schematics 명령행 을 사용하여 CURL을 사용할 수 있습니다.
"env_values": [
{
"TF_LOG": "debug"
},
]
모듈에 개인용 Git 저장소를 사용할 수 있습니까?
예, Schematics 는 사설 저장소에서 Terraform 모듈 다운로드를 지원합니다. 자세한 정보는 개인용 원격 호스트에서 모듈 다운로드 지원을 참조하십시오.
작업공간의 모든 변수를 편집할 수 있습니까?
Schematics 콘솔에서는 한 번에 하나의 변수만 편집할 수 있습니다. 명령행에서 ibmcloud schematics workspace update 명령을 사용하여 JSON 형식으로 작업공간의 모든 변수를 편집할 수 있습니다.
KMS 자원을 가져올 때 키를 가져오는 방법
예, 샘플 코드 블록에 표시된 대로 ibm_kms_key 를 사용하여 키를 설정하거나 관리할 수 있습니다. 자세한 정보는 ibm_kms_key 를 참조하십시오.
resource "ibm_resource_instance" "kms_instance" {
name = "instance-name"
service = "kms"
plan = "tiered-pricing"
location = "us-south"
}
resource "ibm_kms_key" "test" {
instance_id = ibm_resource_instance.kms_instance.guid
key_name = "key-name"
standard_key = false
force_delete =true
}
resource "ibm_cos_bucket" "smart-us-south" {
bucket_name = "atest-bucket"
resource_instance_id = "cos-instance-id"
region_location = "us-south"
storage_class = "smart"
key_protect = ibm_kms_key.test.id
}
workspace list 명령을 실행하는 동안 Schematics API의 디버깅을 돕기 위해 TRACE를 활성화해 주실 수 있나요?
아니오, 현재 Schematics 는 IBMCLOUD_TRACE=true ibmcloud schematics workspace list 명령을 실행하는 동안 이 기능을 지원하지 않습니다.
작업공간 나열 시 오류를 해결하는 방법은 무엇입니까?
작업공간을 나열하거나 검색할 때 다음 오류가 수신될 수 있습니다. Error while retrieving Schematics Instance for the given account
Error:
Bad status code [400] returned when getting workspace from Schematics: {"requestid":"fe5f0d6d-1d43-4643-a689-35d090463ce8","timestamp":"2022-01-25T20:23:54.727208017Z","messageid":"M1070","message":"Error while retrieving Schematics Instance for the given account.","statuscode":400}
지정된 위치에 있는 워크스페이스에 대한 접근 권한이 부족하여 인스턴스를 가져올 수 없을 수 있습니다. 계정에 부여된 권한과 인스턴스를 생성해야 할 위치를 꼭 확인해 주세요. 자세한 정보는 정보가 저장되는 위치 를 참조하십시오.
(IBM) GitLab 저장소를 사용하는 방법은 무엇입니까?
네, 권한이 있는 경우 Schematics 을 통해 비공개( IBM ) GitLab 저장소에 접근할 수 있습니다.
-
IAM 토큰이 사용되므로, 비공개( IBM ) GitLab 저장소
git.cloud.ibm.com의 액세스 토큰은 필요하지 않습니다. -
개인용 저장소의 분기 이름을 유효성 검증하기 위해 공용 GitLab
gitlab.com,read_repository및read_api액세스가 필요한 경우.
GitLab 저장소 세부 정보를 구성하려면 샘플 Terraform 코드 블록을 사용할 수 있습니다.
"template_repo": {
"url": "<gitlab_source_repo_url>",
"branch": ""
},
IAM 액세스 그룹을 Schematics에서 관리할 수 있습니까?
예, Schematics은(는) 전체 IBM Cloud 제공자 리소스 세트를 지원합니다. IAM 액세스 그룹의 작동 방식에 대한 자세한 정보는 ibm_iam_access_group 을 참조하십시오.
다른 계정의 리소스에 대해 작업하는 방법은 무엇입니까?
예, IBM Cloud 소스 계정에서 Schematics 작업공간을 작성할 수 있습니다. 그런 다음 인증, 적절한 교차 계정 권한 부여 또는 API키와 함께 대상 계정 서비스 ID를 사용하여 CLI및 API 호출을 통해 프로비저닝하기 위해 대상 계정에서 리소스를 제공하는 Terraform을 실행하십시오. 자세한 정보는 다른 계정의 리소스 관리 를 참조하십시오.
North America 위치가 나타내는 내용은 무엇입니까?
북미 지역은 Schematics 작업 공간을 생성할 때 항상 us-south 및 us-east 두 위치 모두를 지정합니다. 자세한 정보는 Schematics 작업공간을 작성할 수 있는 위치 및 내 정보가 저장되는 위치 를 참조하십시오.
Schematics에서 사용되는 포트 및 IP 주소는 무엇입니까?
Schematics 관련 리소스에 지정된 포트들과 통신합니다. 예를 들어, VPC 관련 포트에 대해서는 “VPC: 다른 네트워크 방화벽에서 필수 포트 및 IP 주소 열기”를 참조하십시오.
Schematics 와 개별 리소스 대시보드는 각각 어떤 경우에 사용해야 하나요?
IBM Cloud Schematics 를 사용하면 IBM Cloud 에서 인프라 코드를 실행하여 클라우드 리소스의 수명 주기를 관리할 수 있습니다. 리소스를 프로비저닝한 후 개별 리소스의 대시보드를 사용하여 리소스에 대해 작업하고 상호작용합니다. 예를 들어, IBM Cloud Schematics 를 사용하여 가상 사설 클라우드(VPC)에 가상 서버 인스턴스를 프로비저닝하는 경우입니다. stop, reboot 및 power on 가상 서버 인스턴스에 VPC 콘솔, API 또는 명령행을 사용할 수 있습니다. 하지만 가상 서버 인스턴스를 제거하려면 IBM Cloud Schematics 를 사용할 수 있습니다.
Git 저장소에 대한 변경사항이 Schematics에서 새로 고쳐집니까?
아니요, GitHub, 에서 Terraform 템플릿의 코드를 변경하더라도, IBM Cloud Schematics 에서 실행 계획을 생성할 때 이러한 변경 사항이 자동으로 반영되지는 않습니다. GitHub 저장소에서 최신 변경 사항을 가져오려면, 실행 계획을 생성하기 전에 작업 공간의 settings 페이지에서 ‘ Pull latest ’ 옵션을 클릭해야 합니다.
Terraform 상태 파일이 저장되는 위치는 어디입니까?
Schematics 의 apply 작업을 실행하여 클라우드 리소스를 성공적으로 프로비저닝한 후, 리소스의 상태는 Terraform 상태 파일(terraform.tfstate)에 저장됩니다. Schematics 은 이 상태 파일을 유일한 신뢰할 수 있는 정보원으로 사용하여 계정에 어떤 리소스가 존재하는지 확인합니다. 상태 파일은 Terraform 구성 파일에서 지정한 리소스를 프로비저닝한 Cloud 리소스에
매핑합니다.
작업공간 삭제 시 자원이 제거되었습니까?
IBM Cloud Schematics 에서 워크스페이스를 삭제해도 클라우드 리소스는 전혀 제거되지 않습니다. 리소스를 제거하기 전에 워크스페이스를 삭제하는 경우, 개별 리소스 대시보드에서 모든 클라우드 리소스를 수동으로 제거해야 합니다.
클라우드 자원을 제거하는 작업은 취소할 수 없습니다. 리소스를 제거하기 전에 모든 데이터를 백업해 두었는지 확인하십시오. Terraform 구성 파일에서 리소스 정의를 제거하거나 리소스를 주석 처리하면 리소스가 제거 (삭제) 됩니다. 계획 로그 파일을 검토하여 모든 자원이 제거에 포함되어 있는지 확인하십시오.
작업공간에 대한 환경 변수를 설정할 수 있습니까?
CLI및 API를 사용하여 작업공간에 대해 env values 를 설정할 수 있습니다. 자세한 정보는 env_values 의 사용법 을 참조하십시오.
작업 공간이 IBM Cloud 프로젝트 서비스에서 생성된 경우 환경 변수를 설정하는 방법에 대한 참조로 CLI를 사용하여 Terraform 로그 활성화하기를 참조하세요.
샘플 페이로드
{
"name": "newName",
"template_data": [
{
"type": "<same_as_before>",
"env_values": [
{
"env_key1": "dummy_text"
},
{
"env_key2": "dummy_text"
}
],
"env_values_metadata": [
{
"name": "env_values_1",
"hidden": false,
"secure": false
},
{
"name": "env_values_2",
"hidden": false,
"secure": false
}
]
}
]
}
드리프트 발견이 자동으로 실행됩니까?
아니요, 드리프트 감지는 ‘ IBM Cloud Schematics ’에서 자동으로 작동하는 감지 방식이 아닙니다. 자세한 정보는 Schematics 을 참조하십시오.
드리프트 발견을 시작하는 방법은 무엇입니까?
UI및 CLI를 사용하여 드리프트 발견을 시작할 수 있습니다. 자세한 정보는 Schematics 을 참조하십시오.
드리프트 감지 작업의 진행 상황은 어디에서 확인할 수 있나요?
드리프트 감지 작업의 결과를 확인하려면 드리프트 감지 작업 로그를 확인해야 합니다. 작업 로그는 failure 또는 success과(와) 같은 적절한 상태의 in progress 또는 completed(으)로 드리프트 감지의 세부사항을 제공합니다. 자세한 정보는 Schematics 을 참조하십시오.
작업을 실행 interrupt 또는 terminate 할 수 있습니까?
예, 작업 유형을 사용하여 Schematics에서 프로비저닝 리소스 또는 실행 중인 작업을 인터럽트, 강제 중지 또는 종료할 수 있습니다. 자세한 정보는 작업 유형 중지 를 참조하십시오.
Incorrect Location Input 오류를 정정하는 방법
오류
{
"requestid": "3f59c342-cd2c-4703-aa10-9e8e7072a3ac",
"timestamp": "2022-06-28T20:02:58.529765308Z",
"messageid": "M1097",
"message": "Incorrect Location Input.",
"statuscode": 400
}
Schematics 글로벌 엔드포인트는 기본적으로 us 환경으로 설정됩니다. 따라서 지역 엔드포인트 를 사용하여 위치를 eu-de 지역으로 지정해야 합니다.
작업공간 자원을 보는 방법
state list CLI 명령을 사용하여 IBM Cloud Schematics UI에서와 동일한 리소스를 보십시오.
CreateworkspaceWithContext failed Bad request 오류를 수정하는 방법은 무엇입니까?
오류
CreateWorkspaceWithContext failed Bad request. Check that the information you entered in the payload is complete and formatted correctly in JSON.
기본적으로 Schematics 공용 또는 개인 엔드포인트 글로벌 URL us 지역을 가리킵니다. 임시 해결책으로 Terraform 명령 전에 환경 변수 키 를 설정할 수 있습니다.
```sh
export IBMCLOUD_SCHEMATICS_API_ENDPOINT="https://eu-de.schematics.cloud.ibm.com"
```
엔드포인트를 JSON 파일에 추가하여 엔드포인트 서비스를 공용 또는 개인용으로 분류할 수도 있습니다.
샘플 제공자 선언
{
"IBMCLOUD_SCHEMATICS_API_ENDPOINT":{
"public":{
"eu-de":"https://eu-de.schematics.cloud.ibm.com"
}
}
}
예제 제공자 블록
provider "ibm" {
endpoints_file_path= "endpoints.json"
}
상태 파일의 민감한 값이 암호화되었습니까?
Schematics 은 저장 시와 전송 중에도 TLS 을 사용하여 Terraform 상태 파일을 암호화합니다. Terraform은 민감한 값을 별도로 암호화하지 않습니다. 자세한 정보는 상태 파일에서 sensitive-data 를 참조하십시오.
CLI를 사용하여 정의된 작업공간 변수에서 400오류가 발생하는 이유는 무엇입니까?
Schematics 작업공간 목록 변수 저장소 값은 항상 HCL 문자열이어야 합니다. value 필드에는 목록, 맵 또는 복합 변수의 변수 저장소에 대한 이스케이프 문자열이 포함되어야 합니다. 자세한 정보는 선언된 변수에 대해 Schematics 에 값 제공 을
참조하십시오.
JSON 파일을 사용하여 Terraform 버전 (TF_VERSION) 을 업데이트할 수 있습니까?
현재 TF_VERSION 업데이트에 대한 임시 해결책은 변수 저장소를 업데이트하는 동안 TF_VERSION 를 전달하는 것입니다. Schematics 는 TF 파일의 Terraform 버전 블록에 지정된 항목을 자동으로 발견합니다. 이것은 기본 작동입니다.
자세한 정보는 버전 설정 및 변경 을 참조하십시오.
각 작업 실행에서 새 Terraform 상태 파일로 시작할 수 있습니까?
아니오, 새 작업공간을 작성해야 합니다. 자세한 정보는 작업공간 작업 실행 을 참조하십시오.
기존 Terraform 상태 파일을 가져올 수 있나요?
예, ibmcloud schematics workspace new 를 통해 --state 플래그 옵션을 사용할 수 있습니다.
문자의 최대 가변 길이는 무엇입니까?
Schematics 작업공간 변수가 지원하는 최대 문자 길이는 1MB입니다.
가져올 최대 상태 파일은 무엇입니까?
terraform.tfstate 파일은 16MB미만이어야 합니다. 기존 Terraform 상태 파일에서 작업공간을 작성하는 경우 terraform.tfstate 파일은 16MB미만이어야 합니다. 16MB보다 큰 상태 파일은 Schematics에서 지원되지 않습니다. 413 Request Entity Too Large error when creating a new workspace 와 함께 오류 메시지가 표시됩니다.
API를 사용할 때 인증 오류를 수정하는 방법은 무엇입니까?
IBM Cloud 계정에 대한 IAM 액세스 토큰을 작성해야 합니다. 자세한 정보는 토큰 비밀번호 가져오기를 참조하십시오. 인증 오류와 관련된 다음 예시 오류 메시지와 해결 방법을 확인할 수 있습니다.
Error: Request fails with status code: 400, BXNIMO137E: For the original authentication, client id 'default' was passed, refresh the token, client id 'bx' is used.
IAM API 문서에는 default token 를 생성하는 방법이 설명되어 있습니다. 해당 토큰이 만료된 경우 refresh token을 사용하여 새 IAM 액세스 토큰을 가져올 수 있습니다. 이 문서에 설명된 대로 기본
클라이언트(기본 권한 헤더 없음)인 경우. refresh_token 는 새로운 IAM 액세스 토큰을 가져오는 데 사용할 수 없습니다. IAM 액세스 토큰이 곧 만료되는 경우 API 키를 사용하여 나열된 대로 새 액세스 토큰을 작성하십시오.
-
access_token와refresh_token를 생성해야 합니다.export IBMCLOUD_API_KEY=<ibmcloud-api_key> curl -X POST "https://iam.cloud.ibm.com/identity/token" -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=$IBMCLOUD_API_KEY" -u bx:bx -
1단계에서 얻은
access_token및refresh_token을(를)ACCESS_TOKEN및REFRESH_TOKEN의 환경 변수로 내보내십시오.export ACCESS_TOKEN=<access_token> export REFRESH_TOKEN=<refresh_token> -
작업공간 작성
curl --request POST --url https://cloud.ibm.com/schematics/overview/v1/workspaces -H "Authorization: Bearer <access_token>" -d '{"name":"","type": ["terraform_v1.4"],"description": "","resource_group": "","tags": [],"template_repo": {"url": ""},"template_data": [{"folder": ".","type": "terraform_v1.4","variablestore": [{"name": "variable_name1","value": "variable_value1"},{"name": "variable_name2","value": "variable_value2"}]}]}'
Schematics 작업공간 ID를 환경 변수로 검색하는 방법
다음 코드를 사용하여 Schematics 작업공간 ID를 환경 변수로 검색할 수 있습니다. 플랜 또는 적용을 실행하기 전에 IC_SCHEMATICS_WORKSPACE_ID, TF_VAR_IC_SCHEMATICS_WORKSPACE_ID, TF_VAR_IC_SCHEMATICS_WORKSPACE_RG_I, IC_IAM_TOKEN 및 IC_IAM_REFRESH_TOKEN 환경 변수가 Terraform 스크립트에 자동으로 설정됩니다.
data "external" "env" {
program = ["jq", "-n", "env"]
}
output "workspace_id" {
value = "${lookup(data.external.env.result, "TF_VAR_IC_SCHEMATICS_WORKSPACE_ID")}"
작업공간에서 사용 가능한 모든 환경 변수를 보려면 output "${jsonencode(data.external.env.result)}" 코드를 사용하십시오.
브로커 호출에서 401 오류를 수정하려면 어떻게 해야 하나요? Schematics 개체를 삭제할 때 발생하는 401 오류를 수정하려면 어떻게 해야 하나요?
Schematics 개체 삭제 후 Schematics 서비스에서 계정 내 개체 삭제에 실패한 경우입니다. 리소스 컨트롤러에서 제거하려면 Schematics 지원 티켓 을 올려야 합니다.