데이터 설정 및 가져오기

이 페이지에서는 Runtime Configurator를 사용하여 변수를 설정, 가져오기, 업데이트하는 방법을 설명합니다. 변수는 RuntimeConfig 리소스에 속하는 키 값 쌍입니다. 각 키 값 쌍에는 개발자가 정의한 데이터가 포함됩니다. 변수를 만든 후에는 여기에 감시자 또는 대기자를 설정할 수 있습니다.

변수 및 Runtime Configurator 서비스에 대한 자세한 내용은 Runtime Configurator 기초 문서를 참조하세요.

RuntimeConfig 리소스를 만드는 방법은 RuntimeConfig 리소스 만들기 및 삭제를 참조하세요.

시작하기 전에

변수 만들기

변수는 키 값 쌍입니다. 변수 키는 평면 또는 계층형일 수 있습니다. 예를 들어 다음 키는 모두 유효한 키입니다.

  • status
  • users/jane-smith/favorite-color
  • users/total

리프 노드 키만 값을 가질 수 있습니다. 위 예제에서는 다음 항목에 값을 할당할 수 없습니다.

  • users
  • users/jane-smith

이 두 키는 그 아래에 다른 키를 포함하기 때문입니다.

변수를 만들려면 Deployment Manager, Google Cloud CLI 또는 API를 사용합니다.

Deployment Manager

Deployment Manager에서 변수를 만들려면 변수 유형을 지정합니다.

runtimeconfig.v1beta1.variable

변수 속성에서 변수의 name, location, value를 제공합니다.

- name: [NAME]
  type: runtimeconfig.v1beta1.variable
  properties:
    parent: $(ref.[CONFIG_NAME].name)
    variable: [VARIABLE_KEY]
    [value | text]: [VARIABLE_VALUE]

각 항목의 의미는 다음과 같습니다.

  • [NAME]은 이 변수의 임의 리소스 이름입니다. 변수 자체 이름이 아닙니다.
  • [CONFIG_NAME]은 이 요청의 구성 리소스입니다.
  • [VARIABLE_KEY]는 이 변수의 키입니다. 예를 들어 statususers/jane-smith/favorite_color는 유효한 키입니다. 변수 키에는 /가 포함될 수 있습니다. 변수 키에는 숫자, 문자, 대시, 슬래시가 포함될 수 있으며 이름 최대 길이는 256자입니다.
  • [VARIABLE_VALUE]는 이 변수의 값입니다. 값을 일반 텍스트 또는 base64 인코딩 문자열로 할당 여부에 따라 value 또는 text 속성을 선택합니다.
    • value: 값을 base64 인코딩 문자열로 제공할 경우에는 value 속성을 사용합니다.
    • text: 일반 텍스트 문자열을 제공할 경우에는 text 속성을 사용합니다. 문자열은 유효한 UTF-8이어야 합니다.

gcloud

Google Cloud CLI로 변수를 만들려면 runtime-config configs variables set 명령어를 사용합니다.

gcloud beta runtime-config configs variables set [VARIABLE_KEY] \
    [VARIABLE_VALUE] --config-name [CONFIG_NAME] [--is-text]

각 항목의 의미는 다음과 같습니다.

  • [VARIABLE_KEY]는 변수의 키입니다. 예를 들어 statususers/jane-smith/favorite_color는 유효한 키입니다. 변수 키에는 /가 포함될 수 있습니다. 변수 키는 숫자, 문자, 대시, 슬래시를 포함할 수 있으며 이름 최대 길이는 256자입니다.
  • [VARIABLE_VALUE]는 이 변수의 값입니다. 값을 일반 텍스트 또는 based64 인코딩 문자열로 할당할 수 있습니다. 일반 텍스트 값을 지정할 경우 --is-text 플래그를 제공합니다. 그렇지 않으면 Google Cloud CLI가 값을 base64로 인코딩합니다.

    gcloud beta runtime-config configs variables set [VARIABLE_KEY] \
          [VARIABLE_VALUE] --config-name [CONFIG_NAME] --is-text
    

    또한 파일에서 변수 값을 제공할 수 있습니다. 예를 들면 다음과 같습니다.

    cat [FILE_NAME] | gcloud beta runtime-config configs variables set [VARIABLE_KEY] --config-name [CONFIG_NAME]
    

    참고: gcloud가 인코딩을 수행하므로 개발자가 이 값을 인코딩할 필요는 없습니다.

  • [CONFIG_NAME]은 이 변수를 생성해야 하는 RuntimeConfig 리소스의 이름입니다. 예를 들면 frontend-config입니다.

    예를 들면 다음과 같습니다.

    gcloud beta runtime-config configs variables set example-variable \
          my-test-value --config-name example-config
    

    gcloud CLI는 다음과 같은 응답을 반환합니다.

Created [https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]].

기본적으로 모든 기존 변수를 자동으로 덮어씁니다. 기존 변수를 보존하려는 경우 변수가 없으면 새 변수를 만드는 --fail-if-present 플래그를 포함합니다.

마찬가지로 --fail-if-absent 플래그를 제공하여 변수가 없는 경우 요청이 실패하도록 할 수도 있습니다.

gcloud 명령어의 전체 참조는 runtime-config variables set 참고 문서를 확인하세요.

API

REST API에서 POST 요청을 다음 URI에 보내 새 변수를 만듭니다.

https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables

여기서 [PROJECT_ID]는 이 요청의 프로젝트 ID입니다. 요청 페이로드에는 RuntimeConfig 리소스에 대한 URI와 키의 일반 텍스트 값 또는 base64 인코딩 값이 포함됩니다.

{
   "name": "projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]"
   "[value | text]": "[VARIABLE_VALUE]" # Choose either 'value' or 'text' but not both
}

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 이 요청의 프로젝트 ID입니다.
  • [CONFIG_NAME]은 이 구성의 이름입니다.
  • [VARIABLE_KEY]는 변수의 키입니다. 예를 들면 statususers/jane-smith/favorite_color입니다. 변수 키에는 /가 포함될 수 있습니다. 변수 키에는 숫자, 문자, 대시, 슬래시가 포함될 수 있으며, 이름 최대 길이는 256자입니다.
  • [VARIABLE_VALUE]는 이 변수의 값입니다. 값을 일반 텍스트 또는 base64 인코딩 문자열로 할당 여부에 따라 value 또는 text 속성을 선택합니다.

    • value: 값을 base64 인코딩 문자열로 제공할 경우에는 value 속성을 사용합니다.
    • text: 일반 텍스트 문자열을 제공할 경우에는 text 속성을 사용합니다. 문자열은 유효한 UTF-8이어야 합니다.

    성공하면 API가 다음과 같은 응답을 반환합니다.

    {
    "name": "projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]",
    "value": "dGVhbA==",
    "updateTime": "2016-04-11T21:49:00.773366134Z"
    }

    이 메서드에 대한 자세한 내용은 variables().create 문서를 참조하세요.

변수 업데이트

Deployment Manager

Deployment Manager에서 변수를 업데이트하려면 다음 안내를 따르세요.

  1. 변수 만들기에 설명된 대로 변수 속성을 정의하거나 업데이트합니다.

  2. 업데이트 요청 수행 단계를 수행합니다.

gcloud

변수 만들기와 동일한 프로세스를 사용하여 변수를 업데이트합니다.

API

REST API에서 다음 URI에 대해 PUT 요청을 수행하여 변수를 업데이트합니다.

https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 이 요청의 프로젝트 ID입니다.
  • [CONFIG_NAME]은 이 구성의 이름입니다.
  • [VARIABLE_VALUE]는 이 변수의 값입니다. 이 값은 base64로 인코딩된 문자열입니다.

요청의 페이로드는 다음과 같아야 합니다.

{
   "[value | text]": "[VARIABLE_VALUE]" # Choose either 'value' or 'text' but not both
}

여기서 [VARIABLE_VALUE]는 이 변수의 값입니다. 값을 일반 텍스트 또는 base64 인코딩 문자열로 할당 여부에 따라 value 또는 text 속성을 선택합니다.

  • value: 값을 base64 인코딩 문자열로 제공할 경우에는 value 속성을 사용합니다.
  • text: 일반 텍스트 문자열을 제공할 경우에는 text 속성을 사용합니다. 문자열은 유효한 UTF-8이어야 합니다.

성공하면 API가 다음과 같은 응답을 반환합니다.

{
  "name": "projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]",
  "value": "dGVhbA==",
  "updateTime": "2016-04-11T21:46:11.591713370Z",
  "state": "UPDATED"
}

이 메서드에 대한 자세한 내용은 variables().create 문서를 참조하세요.

변수 값 가져오기

Deployment Manager

다음 방법 중 하나를 사용하여 변수 값을 가져옵니다.

gcloud

Google Cloud CLI로 변수를 만들려면 runtime-config configs variables get-value 명령어를 사용합니다.

gcloud beta runtime-config configs variables get-value [VARIABLE_KEY] --config-name [CONFIG_NAME]

각 항목의 의미는 다음과 같습니다.

  • [VARIABLE_KEY]는 변수의 키입니다. 예를 들면 statususers/jane-smith/favorite_color입니다.
  • [CONFIG_NAME]은 이 변수의 RuntimeConfig 리소스 이름입니다. 예를 들면 website입니다.

    gcloud CLI는 다음과 같은 응답을 반환합니다.

    example-value

또한 list 명령어를 사용하고 --values 플래그를 제공하여 runtimeconfig.variables.get 권한이 있는 변수 목록과 값을 가져올 수 있습니다. 예를 들면 다음과 같습니다.

gcloud beta runtime-config configs variables list --config-name example-config --values

gcloud CLI는 다음과 비슷한 목록을 반환합니다.

NAME                         UPDATE_TIME                     VALUE
not-my-favorite-color/shade  2016-04-18T21:14:59.932428461Z  orange
not-my-favorite-food/group   2016-04-18T21:14:59.932428461Z  vegetables

get 권한이 없는 변수는 모두 생략됩니다. 여기에는 list 권한은 있지만 get 권한이 없는 변수가 포함됩니다.

gcloud 명령어의 전체 참조는 runtime-config variables 참고 문서를 확인하세요.

API

REST API에서 다음 URI에 대해 GET 요청을 수행하여 변수 값을 가져옵니다.

https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 이 요청의 프로젝트 ID입니다.
  • [CONFIG_NAME]은 이 구성의 이름입니다.
  • [VARIABLE_KEY]는 이 요청의 이름입니다.

성공하면 API가 base64로 인코딩된 변수 값이 포함된 응답을 반환합니다.

{
  "name": "projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]",
  "value": "[VARIABLE_VALUE]",
  "updateTime": "2016-04-11T21:49:00.773366134Z"
}

문자열을 가져오려면 값을 직접 디코딩해야 합니다. 이 메서드에 대한 자세한 내용은 variables().get 문서를 참조하세요.

runtimeconfig.variables.get 권한이 있는 변수 목록과 값을 가져오려면 returnValues 메서드를 사용합니다. 예를 들면 다음과 같습니다.

GET uri: https://runtimeconfig.googleapis.com/v1beta1/projects/myproject/configs/example-config/variables?returnValues=True

API는 개발자에게 권한이 있는 모든 변수를 반환합니다.

{
  "variables": [
    {
      "name": "projects/compute-writers-project/configs/example-config/variables/not-my-favorite-color/shade",
      "updateTime": "2016-04-18T21:14:59.932428461Z",
      "value": "b3Jhbmdl"
    }
  ]
}

마찬가지로, 문자열을 가져오려면 값을 직접 디코딩해야 합니다.

이 메서드에 대한 자세한 내용은 variables().list 문서를 참조하세요.

다음 단계