Definir e obter dados

Esta página explica como definir, obter e atualizar variáveis através do Runtime Configurator. As variáveis são pares de valor-chave que pertencem a um recurso RuntimeConfig. Cada par chave-valor contém dados que define. Depois de criar uma variável, pode definir um observador ou um tempo de espera na mesma.

Para saber mais sobre as variáveis e o serviço Runtime Configurator, consulte a documentação Fundamentos do Runtime Configurator.

Para saber como criar um recurso RuntimeConfig, consulte o artigo Criar e eliminar recursos RuntimeConfig.

Antes de começar

Criar uma variável

Uma variável é um par de chave-valor. Uma chave de variável pode ser simples ou hierárquica. Por exemplo, todas as seguintes são chaves válidas:

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

Apenas as chaves de nó folha podem ter valores. No exemplo acima, não pode atribuir um valor a:

  • users
  • users/jane-smith

Isto deve-se ao facto de ambas as teclas conterem outras teclas abaixo.

Para criar uma variável, use o Deployment Manager, a Google Cloud CLI ou a API.

Deployment Manager

Para criar uma variável no Deployment Manager, especifique o tipo de variável:

runtimeconfig.v1beta1.variable

Nas propriedades da variável, indique o name, o location e o value da variável:

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

where:

  • [NAME] é o nome do recurso arbitrário desta variável. Este não é o nome da variável propriamente dito.
  • [CONFIG_NAME] é o recurso de configuração para este pedido.
  • [VARIABLE_KEY] é a chave desta variável. Por exemplo, status e users/jane-smith/favorite_color são chaves válidas. As chaves variáveis podem conter /. Uma chave variável pode conter dígitos, letras, travessões e barras, e o comprimento máximo de um nome é de 256 carateres.
  • [VARIABLE_VALUE] é o valor desta variável. Consoante queira atribuir um valor como texto simples ou como uma string codificada em base64, escolha a propriedade value ou text:
    • value: se fornecer um valor como uma string codificada em base64, use a propriedade value.
    • text: se fornecer uma string de texto simples, use a propriedade text. A string tem de ser UTF-8 válida.

gcloud

Para criar uma variável com a CLI gcloud, use o comando runtime-config configs variables set:

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

where:

  • [VARIABLE_KEY] é a chave da variável. Por exemplo, status e users/jane-smith/favorite_color são chaves válidas. As chaves variáveis podem conter /. Uma chave variável pode conter dígitos, letras, travessões e barras invertidas, e o comprimento máximo de um nome é de 256 carateres.
  • [VARIABLE_VALUE] é o valor desta variável. Pode atribuir um valor como texto simples ou como uma string codificada em base64. Se especificar um valor de texto simples, forneça a flag --is-text; caso contrário, a CLI Google Cloud codifica o valor na codificação base64.

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

    Também pode fornecer o valor da variável a partir de um ficheiro. Por exemplo:

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

    Nota: não tem de codificar este valor porque o gcloud faz a codificação por si.

  • [CONFIG_NAME] é o nome do recurso RuntimeConfig onde esta variável deve ser criada. Por exemplo, frontend-config.

    Por exemplo:

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

    A CLI gcloud devolve uma resposta como:

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

Por predefinição, as variáveis existentes são substituídas silenciosamente. Se quiser preservar uma variável existente, inclua a flag --fail-if-present, que cria a nova variável se não existir.

Da mesma forma, também pode falhar o pedido se a variável estiver ausente, fornecendo a flag --fail-if-absent.

Para ver a referência completa deste comando gcloud, leia a documentação de referência runtime-config variables set.

API

Na API REST, faça um pedido POST ao seguinte URI para criar uma nova variável:

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

em que [PROJECT_ID] é o ID do projeto para este pedido. A carga útil do pedido contém o URI para o recurso RuntimeConfig e o valor de texto simples da chave ou o valor codificado em base64:

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

where:

  • [PROJECT_ID] é o ID do projeto para este pedido.
  • [CONFIG_NAME] é o nome desta configuração.
  • [VARIABLE_KEY] é a chave da variável. Por exemplo, status e users/jane-smith/favorite_color. As chaves variáveis podem conter /. Uma chave de variável pode conter dígitos, letras, travessões e barras, e o comprimento máximo de um nome é de 256 carateres.
  • [VARIABLE_VALUE] é o valor desta variável. Consoante pretenda atribuir um valor como texto simples ou como uma string codificada em base64, escolha a propriedade value ou text:

    • value: se fornecer um valor como uma string codificada em base64, use a propriedade value.
    • text: se fornecer uma string de texto simples, use a propriedade text. A string tem de ser UTF-8 válida.

    Se for bem-sucedida, a API devolve uma resposta como:

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

    Para saber mais sobre o método, leia a variables().create documentação.

Atualizar uma variável

Deployment Manager

Para atualizar uma variável no Deployment Manager:

  1. Defina ou atualize as propriedades das variáveis, conforme descrito no artigo Criar uma variável.

  2. Siga os passos para fazer o pedido de atualização.

gcloud

Atualize uma variável através do mesmo processo para criar uma variável.

API

Na API REST, faça um pedido PUT ao seguinte URI para atualizar uma variável:

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

where:

  • [PROJECT_ID] é o ID do projeto para este pedido.
  • [CONFIG_NAME] é o nome desta configuração.
  • [VARIABLE_VALUE] é o valor desta variável. Esta é uma string que foi codificada em base64.

O payload do pedido tem de ser:

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

em que [VARIABLE_VALUE] é o valor desta variável. Consoante pretenda atribuir um valor como texto simples ou como uma string codificada em base64, escolha a propriedade value ou text:

  • value: se fornecer um valor como uma string codificada em base64, use a propriedade value.
  • text: se fornecer uma string de texto simples, use a propriedade text. A string tem de ser UTF-8 válida.

Se for bem-sucedida, a API devolve uma resposta como:

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

Para saber mais sobre o método, leia a variables().create documentação.

Obter o valor de uma variável

Deployment Manager

Obtenha o valor de uma variável através de um dos seguintes métodos:

gcloud

Para criar uma variável com a CLI gcloud, use o comando runtime-config configs variables get-value:

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

where:

  • [VARIABLE_KEY] é a chave da variável. Por exemplo, status, users/jane-smith/favorite_color.
  • [CONFIG_NAME] é o nome do recurso RuntimeConfig para esta variável. Por exemplo, website.

    A CLI gcloud devolve uma resposta como:

    example-value

Também pode obter uma lista de variáveis para as quais tem runtimeconfig.variables.get autorização e os respetivos valores através do comando list e fornecendo a flag --values. Por exemplo:

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

A CLI gcloud devolve uma lista da seguinte forma:

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

Todas as variáveis para as quais não tem autorização get serão omitidas. Isto inclui variáveis para as quais tem autorização list, mas não autorização get.

Para ver a referência completa deste comando gcloud, leia a documentação de referência runtime-config variables.

API

Na API REST, faça um pedido GET ao seguinte URI para obter o valor de uma variável:

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

where:

  • [PROJECT_ID] é o ID do projeto para este pedido.
  • [CONFIG_NAME] é o nome desta configuração.
  • [VARIABLE_KEY] é o nome deste pedido.

Se tiver êxito, a API devolve uma resposta com o valor codificado em base64 da variável:

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

Tem de descodificar o valor para obter a string. Para saber mais sobre o método, leia a documentação variables().get.

Se quiser obter uma lista de variáveis para as quais tem autorização runtimeconfig.variables.get e os respetivos valores, use o método returnValues. Por exemplo:

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

A API devolve todas as variáveis para as quais tem autorização:

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

Da mesma forma, tem de descodificar o valor para obter a string.

Para saber mais sobre o método, leia a documentação variables().list.

O que se segue?