환경 변수에 대한 작업
환경 변수로 작업하는 방법(env variables)은 Code Engine 에서 확인하세요. 애플리케이션, 작업 또는 함수에서 사용할 수 있는 키-값 쌍으로 환경 변수를 설정할 수 있습니다.
환경 변수 작성 및 업데이트
Code Engine으로 환경 변수를 작성하고 관리합니다.
환경 변수를 리터럴 값으로 정의하거나 기존 시크릿 또는 컨피그맵을 참조할 수 있습니다. Code Engine 환경 변수를 사용하여 작업, 애플리케이션 또는 함수에서 시크릿 또는 컨피그맵을 사용할 수 있도록 설정합니다.
콘솔에서 환경 변수 작성
Code Engine 콘솔을 사용하여 환경 변수를 작성하고 업데이트합니다.
콘솔에서 앱, 작업 또는 함수를 만들거나 업데이트할 때 환경 변수를 정의할 수 있습니다.
시작하기 전에
- 프로젝트를 생성해야 하며 프로젝트가
active상태여야 합니다. - 리터럴 환경 변수를 작성하려는지 또는 기존 시크릿 또는 configmap을 참조하는 환경 변수를 작성하려는지 판별합니다. 기존 시크릿 또는 configmap을 완전히 참조하거나 기존 시크릿 또는 configmap에 있는 개별 키를 참조하는 환경 변수를 원하는 경우, 시크릿 또는 configmap이 존재해야 합니다. 진행하기 전 시크릿 작성 또는 configmap 작성을 참조하여 시크릿 또는 configmap을 정의하십시오.
-
환경 변수 추가 페이지에서 환경 변수를 정의하는 대화 상자를 열려면 다음 선택사항 중 하나를 완료하십시오.
- 앱을 작성하는 경우, 애플리케이션 작성 페이지에서 환경 변수(선택사항) 섹션을 펼치십시오. 작성하는 앱에 하나 이상의 환경 변수를 추가할 수 있습니다. 추가를 클릭하여 환경 변수 추가 페이지를 여십시오.
- 작업을 작성하는 경우, 작업 작성 페이지에서 환경 변수(선택사항) 섹션을 펼치십시오. 추가를 클릭하여 환경 변수 추가 페이지를 여십시오.
- 함수를 만드는 경우 함수 만들기 페이지에서 환경 변수(선택 사항) 섹션을 펼칩니다. 추가를 클릭하여 환경 변수 추가 페이지를 여십시오.
- 환경 변수를 추가하기 위해 기존 워크로드를 업데이트하는 경우 기존 앱, 작업 또는 기능으로 이동합니다. 구성 탭에서 환경 변수를 클릭합니다. 앱, 작업 및 기능의 경우 환경 변수 추가를 클릭하여 환경 변수 추가 페이지를 엽니다.
-
환경 변수 추가 페이지에서 다음 중 한 가지 방식으로 환경 변수를 작성하십시오.
- 리터럴 환경 변수를 작성하려면
Literal value를 선택하고 리터럴 환경 변수의 이름을 지정한 후 값을 제공하십시오.Resulting definition섹션에서는 환경 변수 이름 및 해당 값을 표시합니다. - _configmap을 완전히 참조_하는 환경 변수를 작성하려면
Reference full configmap를 선택한 후 기존 구성 맵을 선택하십시오. 이 경우 선택한 configmap의 모든 키는 환경 변수의 일부로서 참조됩니다.Resulting definition섹션은 configmap의 키 이름을 표시하지만, configmap 내에서 참조되는 키의 실제 값을 표시하지 않습니다. - _정의된 configmap의 개별 키를 참조_하는 환경 변수를 작성하려면
Reference key in configmap를 선택하고 원하는 기존 configmap을 선택한 후 환경 변수의 일부로 참조할 키를 선택하십시오. 참조하려는 configmap에서 개별 키를 선택한 후Resulting definition섹션에서는 configmap에서 선택한 키의 이름을 표시하지만 configmap 내에서 참조되는 키의 실제 값을 표시하지 않습니다. - _시크릿을 완전히 참조_하는 환경 변수를 작성하려면
Reference full secret을 선택한 후 기존 구성 시크릿을 선택하십시오. 이 경우 선택한 시크릿의 모든 키는 환경 변수의 파트로서 참조됩니다.Resulting definition섹션에서는 시크릿의 키 이름을 표시하지만, 시크릿 내에서 참조되는 키의 실제 값은 표시하지 않습니다. - _정의된 시크릿의 개별 키를 참조_하는 환경 변수를 작성하려면
Reference key in secret를 선택하고 원하는 기존 시크릿을 선택한 후 환경 변수의 일부로 참조할 키를 선택하십시오. 참조하려는 시크릿에서 개별 키를 선택한 후Resulting definition섹션은 시크릿에서 선택한 키의 이름을 표시하지만 시크릿 내에서 참조되는 키의 실제 값을 표시하지 않습니다.
콘솔에서 환경 변수별로 정의된 configmap 또는 시크릿에 대한 하나의 개별 키만을 참조할 수 있습니다. configmap 또는 secret에 대한 둘 이상의 키를 참조해야 하는 경우 단계를 반복하여 다른 키를 참조하는 다른 환경 변수를 정의하십시오.
- 리터럴 환경 변수를 작성하려면
-
완료를 클릭하여 변경사항을 저장하십시오. 이 액션은 환경 변수 탭의 테이블에 환경 변수를 추가합니다. 환경 변수를 계속 추가하려면 추가를 클릭하십시오.
-
정의된 환경 변수를 사용하여 앱, 작업 또는 함수에 대한 생성 또는 업데이트를 완료하세요.
- 워크로드를 만드는 경우 만들기를 클릭하면 앱, 작업 또는 함수가 환경 변수와 함께 배포됩니다.
- 기존 앱, 작업 또는 함수를 업데이트하여 환경 변수를 추가하는 경우 저장 후 배포를 클릭하여 앱을 업데이트하거나 저장을 클릭하여 새 환경 변수로 작업 또는 함수를 업데이트합니다.
-
앱, 작업 또는 함수가
Ready상태이면 환경 변수로 업데이트됩니다.
다음 테이블은 사용자 환경 변수에 대한 정보에 대해 설명합니다.
| 표제 | 설명 |
|---|---|
Name |
환경 변수의 이름입니다. |
Defined by |
환경 변수 유형이 literal인지 또는 환경 변수가 완전히 참조되는 configmap 또는 시크릿인지, 시크릿 또는 CONFIGMAP의 특정 키가 참조되는지를 지정합니다. |
Value or reference |
리터럴 값, 완전히 참조되는 comfigmap 또는 시크릿, comfigmap 또는 시크릿의 참조되는 키를 표시합니다. |
예를 들어 앱을 작성하고 앱의 환경 변수를 설정합니다.
icr.io/codeengine/codeengine이미지를 사용하는myapp이라는 앱을 작성하십시오. 이hello-world앱에는TARGET환경 변수가 포함되고, 앱은Hello ${TARGET} from Code Engine를 인쇄하며 환경 변수 목록을 인쇄합니다.TARGET환경 변수가 비어 있으면Hello World from Code Engine가 리턴됩니다.- 콘솔에서 이 앱으로 이동하십시오.
- 앱이
Ready상태인 경우 앱을 테스트할 수 있습니다. 애플리케이션 테스트를 클릭한 후 애플리케이션 테스트 분할창에서 요청 전송을 클릭하십시오. 애플리케이션을 웹 페이지에서 열려면 애플리케이션 URL을 클릭하십시오.myapp앱은Hello World from Code Engine응답을 리턴하고 이 앱에 포함되는 환경 변수를 인쇄합니다. - 환경 변수 탭을 클릭하십시오.
- 다음 환경 변수를 작성하십시오.
- 추가를 클릭하여 환경 변수 추가 페이지를 열고 리터럴 환경 변수를 작성하십시오. 예를 들어 이름은
literalenvvar이고 값은This is my literal인 리터럴 환경 변수를 작성하십시오. 완료를 클릭하여 변경사항을 저장하십시오. - 추가를 클릭하여 환경 변수 추가 페이지를 열고 _configmap을 완전히 참조_하는 환경 변수를 작성하십시오. configmap을 참조하기 전에 이미 존재해야 합니다. 이 예제에서는 이름이
mycolorconfigmap인 confgmap이 존재하고 키-값 쌍(key1=blue,key2=green,key3=yellow)을 포함합니다. 모든 키-값 쌍을 포함하여mycolorconfigmapconfigmap을 완전히 참조하는 환경 변수를 작성하십시오.Resulting definition섹션은 configmap의 키 이름을 표시하지만, configmap 내에서 참조되는 키의 실제 값을 표시하지 않습니다. 완료를 클릭하여 변경사항을 저장하십시오. - 추가를 클릭하여 환경 변수 추가 페이지를 열고 _정의된 시크릿의 개별 키를 참조_하는 다른 환경 변수를 작성하십시오. 시크릿을 참조하기 전에 이미 존재해야 합니다. 이 예제에서는
mynewsecret이름의 시크릿이 존재하고 키-값 쌍(newsec1=mynewsecret1,newsec2=mynewsecret2,newsec3=mynewsecret3)을 포함합니다.newsec2시크릿의mynewsecret키를 참조하는 환경 변수를 작성하십시오.Resulting definition섹션에서는 시크릿에서 선택한 키 이름을 표시하지만, 시크릿 내에서 참조되는 키의 실제 값은 표시하지 않습니다. 완료를 클릭하여 변경사항을 저장하십시오.
- 추가를 클릭하여 환경 변수 추가 페이지를 열고 리터럴 환경 변수를 작성하십시오. 예를 들어 이름은
- 저장 후 작성을 클릭하여 새 환경 변수로 앱을 업데이트하십시오.
- 앱이
Ready상태이면 앱이 환경 변수로 업데이트됩니다. - 앱을 테스트하려면 애플리케이션 테스트를 클릭한 후 애플리케이션 테스트 분할창에서 요청 전송을 클릭하십시오. 애플리케이션을 웹 페이지에서 열려면 애플리케이션 URL을 클릭하십시오. 이 앱 개정판에서는 이 앱이
Hello World from Code Engine를 출력하고 출력에는 이전 단계에서 추가했던 환경 변수 이름이 포함됩니다.
워크로드에서 환경 변수를 설정할 때 이 작업을 수행하면 새 환경 변수가 추가되거나 기존 환경 변수가 재정의됩니다. 이름이 같은 환경 변수가 있고 이전에 정의한 환경 변수와 다른 값을 지정한 경우 업데이트된 환경 변수가 기존 값을 재정의합니다. 예를 들어 이름이 envvar1이고 값이 myenvar1인 환경 변수가 정의되어 있고, 이름이 envvar1인
다른 환경 변수를 정의하고 해당 값을 mynewenvvar1로 지정하는 경우, 업데이트된 앱을 저장 및 배치하거나 업데이트된 작업을 저장한 후에는 실행 중인 앱 또는 작업에서 envvar1 값이 있는 mynewenvvar1 환경 변수를 사용합니다.
콘솔에서 환경 변수 업데이트
- 기존 환경 변수를 업데이트하려면 변경하려는 환경 변수가 포함된 앱, 작업 또는 기능으로 이동하여 환경 변수 탭을 클릭하여 환경 변수 표를 표시합니다.
- 환경 변수 테이블에서 업데이트하려는 환경 변수를 클릭하십시오.
- 환경 변수 편집 페이지에서 업데이트를 작성한 후 완료를 클릭하여 변경사항을 저장하십시오. 환경 변수를 편집할 때 정의자 값과 해당 필수 필드를 변경할 수 있습니다.
- 저장 및 배치를 클릭하여 변경사항과 함께 애플리케이션를 배치하거나 저장을 클릭하여 변경사항과 함께 작업을 실행하십시오. 앱 또는 작업이
Ready상태이면 앱 또는 작업이 환경 변수로 업데이트됩니다.
CLI를 사용하여 환경 변수 작성 및 업데이트
Code Engine CLI를 사용하여 환경 변수를 작성하고 관리합니다.
CLI로 앱, 작업 또는 함수를 만들거나 업데이트할 때 환경 변수를 정의할 수 있습니다.
CLI를 사용하여 환경 변수를 작성하는 경우, configmap 또는 시크릿을 참조하거나 리터럴 환경 변수를 작성할 수 있습니다. 이 지침은 CLI로 리터럴 환경 변수를 만들고 업데이트하는 방법을 설명합니다.
환경 변수로서 시크릿 및 configmap 완전 참조, 참조 대체, CLI에서 참조 제거에 대한 상세 시나리오는 시크릿 및 configmap 참조를 참조하십시오.
시작하기 전에
- Code Engine CLI 환경을 설정하십시오.
- 프로젝트를 작성하고 작업하십시오.
앱 환경 변수 작성 및 업데이트
다음과 같이 앱의 환경 변수를 작성하고 업데이트합니다.
-
앱의 환경 변수를 생성하고 설정하려면
--env옵션과 함께app create또는app update명령과 함께 사용합니다. 다음 예에서는icr.io/codeengine/codeengine이미지를 사용하는myapp애플리케이션을 작성하고envA및envB환경 변수를 정의합니다.ibmcloud ce application create --name myapp --image icr.io/codeengine/codeengine --env envA=A --env envB=B -
기존 애플리케이션의 환경 변수를 업데이트하려면
app update명령에--env옵션을 사용하십시오. 다음 예제는myapp애플리케이션을 업데이트하여envA값을 겹쳐쓰고envC환경 변수를 추가합니다.ibmcloud ce application update --name myapp --env envA=AA --env envC=C
작업 환경 변수 작성 및 업데이트
다음과 같이 작업의 환경 변수를 설정하고 업데이트합니다.
-
작업의 환경 변수를 작성하고 설정하려면
--env옵션과 함께job create,job update,jobrun submit또는jobrun resubmit명령을 사용하십시오. 다음 예에서는icr.io/codeengine/codeengine이미지를 사용하는myjob작업을 작성하고envA환경 변수를 정의합니다.ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine --env envA=A -
기존 작업의 환경 변수를 업데이트하려면
--env옵션과 함께job update,jobrun submit또는jobrun resubmit명령을 사용하십시오.
예제 1
다음 예제는 myjob 작업을 업데이트하여 envA 값을 겹쳐쓰고 envB 환경 변수를 추가합니다.
ibmcloud ce job update --name myjob --env envA=AA --env envB=B
job get 명령을 실행하여 환경 변수를 포함하는 작업 세부사항을 표시하십시오.
ibmcloud ce job get --name myjob
출력 예
Getting job 'myjob'...
OK
Name: myjob
[...]
Environment Variables:
Type Name Value
Literal envA AA
Literal envB B
Image: icr.io/codeengine/codeengine
[...]
예제 2
다음 예제는 myjob 작업을 실행하고, envA 값을 겹쳐쓰고, 이 작업 실행을 위한 envD 환경 변수를 추가합니다.
ibmcloud ce jobrun submit --job myjob --name myjobrun1 --env envB=BB --env envC=C
jobrun get 명령을 실행하여 환경 변수를 포함하는 작업 실행의 세부사항을 표시하십시오.
ibmcloud ce jobrun get --name myjobrun1
출력 예
[...]
Name: myjobrun1
[...]
Job Ref: myjob
Environment Variables:
Type Name Value
Literal envA AA
Literal envB BB
Literal envC C
Image: icr.io/codeengine/codeengine
[...]
Instances:
Name Running Status Restarts Age
myjobrun1-0-0 0/1 Succeeded 0 17s
함수에 대한 환경 변수 생성 및 업데이트
함수에 대한 환경 변수를 다음과 같이 설정하고 업데이트합니다.
-
함수에 대한 환경 변수를 생성하고 설정하려면
--env옵션과 함께function create또는function update명령과 함께 사용합니다. 다음 예제에서는https://github.com/IBM/CodeEngine소스 코드를 사용하는myfunction함수를 만들고envA환경 변수를 정의합니다.ibmcloud ce function create --name myfunction --runtime nodejs --build-source https://github.com/IBM/CodeEngine --build-context-dir /helloworld-samples/function-codebundle-nodejs --env envA=A명령의 출력 예시
fn get명령의 출력 예시.Environment Variables: Type Name Value Literal envA A -
기존 함수에 대한 환경 변수를 업데이트하려면
--env옵션과 함께function update명령과 함께 사용하세요. 다음 예제는envA값을 덮어쓰도록myfunction함수를 업데이트하고envC환경 변수를 추가합니다.ibmcloud ce fn update --name myfunction --env envA=AA --env envC=C명령의 출력 예시
fn get명령의 출력 예시.Environment Variables: Type Name Value Literal envA AA Literal envC C
환경 변수로 워크로드 업데이트 시 고려 사항
구성 맵 또는 비밀을 참조하는 환경 변수가 있는 앱, 작업 또는 함수를 업데이트할 때 다음 정보를 고려하세요.
구성 맵(또는 시크릿)을 완전히 참조하는 환경 변수가 있는 앱, 작업 또는 함수를 다른 구성 맵(또는 시크릿)을 완전히 참조하도록 업데이트하면 전체 참조가 설정된 순서대로 다른 전체 참조를 재정의합니다(마지막 참조된 집합이 첫 번째 집합보다 우선).
한 구성 맵(또는 비밀)의 키를 참조하는 환경 변수가 있는 앱, 작업 또는 함수를 다른 구성 맵(또는 비밀)의 동일한 키를 참조하도록 업데이트하는 경우 마지막으로 참조된 키가 사용됩니다.
구성 맵(또는 시크릿)을 완전히 참조하는 환경 변수가 있는 앱, 작업 또는 함수를 업데이트하여 특정 키에 대한 참조를 추가하면 특정 키 참조가 전체 구성 맵(또는 시크릿) 참조를 재정의합니다.
환경 변수 삭제
환경 변수가 더 이상 필요하지 않은 경우 삭제할 수 있습니다.
콘솔에서 환경 변수 삭제
- 콘솔에서 삭제하려는 환경 변수가 있는 앱, 작업 또는 함수로 이동합니다. 환경 변수 탭을 클릭하십시오.
- 환경 변수 표에서 앱, 작업 또는 함수에서 제거하려는 환경 변수를 삭제합니다.
- 저장 후 배포를 클릭하여 앱을 업데이트하거나 저장을 클릭하여 새 환경 변수로 작업 또는 함수를 업데이트합니다. 앱, 작업 또는 함수가
Ready상태이면 현재 환경 변수로 업데이트됩니다.
CLI를 사용한 환경 변수 삭제
CLI를 사용하여 환경 변수에 대해 작업하는 경우, 기존 configmap 또는 시크릿을 참조하거나 리터럴 환경 변수에 대해 작업할 수 있습니다. 이 지침은 CLI로 리터럴 환경 변수를 삭제하는 방법을 설명합니다.
CLI에서 전체 시크릿 및 configmap에 대한 참조를 제거하는 상세 시나리오는 시크릿 및 configmap 참조를 참조하십시오.
앱 환경 변수 삭제
앱의 환경 변수를 제거하려면 --env-rm 옵션과 함께 app update 명령을 사용하십시오. 다음 예제에서는 myapp 환경 변수를 삭제하도록 envA 애플리케이션을
업데이트합니다.
ibmcloud ce application update --name myapp --env-rm envA
작업 환경 변수 삭제
작업의 환경 변수를 제거하려면 --env-rm 옵션과 함께 job update 또는 jobrun resubmit 명령을 사용하십시오.
--env-rm 옵션과 함께 job update 명령을 사용하여 작업에서 설정된 환경 변수를 제거하십시오. --env-rm 옵션과 함께 jobrun resubmit 명령을 사용하여 지정된 작업 실행에서 설정된 환경 변수를 제거하십시오.
-
다음 예제에서는
myjob작업을 업데이트하여envA환경 변수를 삭제합니다.ibmcloud ce job update --name myjob --env-rm envAjob get명령을 사용하여 환경 변수를 포함하는 작업 세부사항을 표시하십시오. -
다음 예제는
myjobrun1작업 실행을 다시 제출하고envC환경 변수를 삭제합니다.ibmcloud ce jobrun resubmit --jobrun myjobrun1 --name jobrun2resuba--env-rm envCjobrun get명령을 실행하여 환경 변수를 포함하는 작업 실행의 세부사항을 표시하십시오.ibmcloud ce jobrun get --name jobrun2resuba출력 예
Getting jobrun 'jobrun2resuba'... Getting instances of jobrun 'jobrun2resuba'... Getting events of jobrun 'jobrun2resuba'... [...] Name: jobrun2resuba [...] Job Ref: myjob Environment Variables: Type Name Value Literal envB BB Image: icr.io/codeengine/codeengine [...] Instances: Name Running Status Restarts Age jobrun2resuba-0-0 0/1 Succeeded 0 21s
함수에 대한 환경 변수 삭제
함수에 대한 환경 변수를 제거하려면 --env-rm 옵션과 함께 function update 명령과 함께 사용하세요. 다음 예제는 envA 환경 변수를 삭제하도록 myfunction 함수를 업데이트합니다.
ibmcloud ce function update --name myfunction --env-rm envA