Todos os produtos
Search
Central de documentação

Realtime Compute for Apache Flink:Gerenciamento de variáveis

Última atualização: Oct 12, 2026

O uso de variáveis ajuda a evitar os riscos de segurança associados a credenciais em texto simples, como um AccessKey ou uma senha. A reutilização de variáveis também evita a repetição de código e valores, o que simplifica o gerenciamento de configurações. Há suporte para variáveis em jobs SQL, implantações JAR/Python, configurações de log e definições da interface. Este tópico descreve como criar variáveis e usá-las em diferentes cenários.

Informações de contexto

Uma variável é composta por um nome e um valor. O nome, definido por você, atua como um espaço reservado para os dados reais e geralmente reflete o seu significado. O valor representa os dados reais aos quais o nome se refere. O Flink oferece suporte a dois tipos de variáveis: variáveis de implantação e variáveis de namespace. As diferenças são as seguintes:

  • Variável de implantação: pode ser usada apenas em uma única implantação, como em um job SQL de ETL ou como argumento da função principal em uma implantação JAR/Python. O formato para referenciar uma variável de implantação é ${variable_name}. Para mais informações, consulte {{XREF_0}}.

  • Variável de namespace: pode ser usada em todo um namespace. Isso inclui o uso em Development (para ingestão de dados, ETL e scripts de consulta), como argumentos da função principal em implantações JAR/Python, em configurações de parâmetros de implantação, configurações de log e definições da interface (como a criação de um Catalog). O formato para referenciar uma variável de namespace é ${secret_values.variable_name}. Para saber como criá-las e usá-las, consulte {{XREF_1}}.

Notas de uso

  • Não é possível configurar vários valores para um único nome de variável.

  • Evite usar palavras-chave como nomes de variáveis.

  • Em jobs SQL, o uso de variáveis é permitido apenas em tabelas temporárias (CREATE TEMPORARY TABLE). O uso de uma variável em uma tabela persistente (CREATE TABLE) causa mau funcionamento da tabela.

Variáveis de implantação

Nota

Os nomes das variáveis de implantação devem ser exclusivos dentro de uma única implantação.

ETL (job SQL)

Você pode usar variáveis durante o desenvolvimento de jobs SQL, inclusive como argumentos para funções personalizadas. Também é possível modificar os valores das variáveis ao iniciar o job.

  1. No painel de navegação à esquerda do console do Realtime Compute for Apache Flink, clique em Development > ETL.

  2. No editor SQL do job SQL de destino, crie variáveis usando o formato ${variable_name}, conforme mostrado no exemplo a seguir.

    • Ao usar como parâmetro em uma cláusula WITH, coloque a variável entre aspas simples: '${variable_name}'.

    • Ao usar em outros locais (como nomes de tabelas ou campos SQL), coloque a variável entre crases: ${variable_name}.

    <Appender name="SLS" type="SLS">
      <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/>  
      <!-- The final effective log path is: ${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ -->
      <Property name="namespace">{{ namespace }}</Property> <!-- Do not modify this line -->
      <Property name="project">YOUR-SLS-PROJECT</Property>  
      <Property name="logStore">YOUR-SLS-LOGSTORE</Property> 
      <Property name="endpoint">YOUR-SLS-ENDPOINT</Property> 
      <Property name="accessKeyId">${secret_values.accessKeyId}</Property> 
      <Property name="accessKeySecret">${secret_values.accessKeySecret}</Property> 
      <Property name="topic">{{ namespace }}:{{ deploymentId }}:{{ jobId }}</Property>
      <Property name="deploymentName">{{ deploymentName }}</Property>
      <Property name="flushIntervalSeconds">10</Property>
      <Property name="flushIntervalEventCount">100</Property>
    </Appender>
  3. O Flink identifica automaticamente as variáveis de implantação que usam esse formato no job SQL. Você deve fornecer valores para essas variáveis.

    • Método 1: O painel Job Variables aparece no editor SQL. Insira os valores nesse painel.

      No painel Job Variables, configure os pares chave-valor: source_name=datagen, test_name=name e blackhole=blackhole.

    • Método 2: Clique em More Configurations no lado direito. Insira os valores na seção Job Variables.

      Por exemplo, configure a variável source_name como datagen, test_name como name e blackhole como blackhole. Em seguida, você pode referenciar esses valores no seu código SQL usando a sintaxe ${variable_name}.

  4. Após a implantação do job, visualize suas variáveis na guia Deployment Details da página de detalhes do job, em Deployments.

    Nas propriedades do job, a linha Job Variables exibe as variáveis configuradas (como source_name, test_name e blackhole) e seus respectivos valores.

  5. Clique em Start na coluna Actions do job de destino. Modifique os valores das variáveis no painel de inicialização do job.

    Importante

    As alterações feitas nos valores das variáveis no painel de inicialização do job aplicam-se apenas à execução atual do job. Elas não alteram os valores definidos no job SQL.

    No painel de inicialização do job, selecione o modo stateless start ou stateful start. Se você selecionar a inicialização com estado, poderá configurar opções de recuperação, como Recover from latest state. A seção Job Variables exibe as variáveis e seus valores padrão, como source_name definido como datagen, test_name como name e blackhole como blackhole. Modifique-os conforme necessário e clique em Start.

Implantação JAR/Python

Você pode usar variáveis como argumentos para a função principal em implantações JAR/Python.

Método 1: Usar variáveis de namespace

  1. Crie uma nova variável. Para obter detalhes, consulte {{XREF_2}}.

  2. No console do Realtime Compute for Apache Flink, acesse O&M > Deployments e clique em Deploy Job.

  3. No campo Entry Point Main Arguments, insira o argumento usando o formato --variable_in_code ${secret_values.variable_in_management}.

    Se um nome de variável precisar incluir caracteres especiais, consulte {{XREF_3}}.

    Por exemplo, insira --akid ${secret_values.test1} e --aksecret ${secret_values.test2}, com cada parâmetro em uma nova linha.

    Para obter detalhes sobre outros parâmetros de implantação, consulte {{XREF_4}}.

  4. Clique em Deploy.

  5. Clique em Start na coluna Actions da implantação de destino.

Método 2: Usar variáveis de implantação

  1. No console do Realtime Compute for Apache Flink, acesse O&M > Deployments e clique em Deploy Job.

  2. No campo Entry Point Main Arguments, insira o argumento usando o formato --variable_in_code ${deployment_variable_name} e, em seguida, forneça o valor da variável na seção Job Variables abaixo.

    Se um nome de variável precisar incluir caracteres especiais, consulte {{XREF_5}}.

    Por exemplo, insira --akid ${test1} --aksecret ${test2}, adicione as variáveis test1 (AccessKey ID) e test2 (AccessKey Secret) e insira as credenciais reais como seus valores padrão.

    Para obter detalhes sobre outros parâmetros de implantação, consulte {{XREF_6}}.

  3. Clique em Deploy.

  4. Clique em Start na coluna Actions da implantação de destino. Modifique os valores das variáveis no painel de inicialização do job.

    Selecione um modo de inicialização: stateless start (sem estado inicial) ou stateful start (a partir de um estado existente). Você também pode ativar o Configuration Autotuning.

Variáveis de namespace

Criar uma variável

Nota

Apenas membros com permissões de editor ou superiores, ou membros com a permissão específica para criar variáveis, podem criar variáveis.

  1. Faça login no console do Realtime Compute for Apache Flink. Encontre o workspace de destino e clique em Console na coluna Actions.

  2. No painel de navegação à esquerda, clique em Security > Variables e clique em Add Variable.

    Parâmetro

    Descrição

    Variable Name

    O nome da variável deve ser exclusivo dentro do namespace e não pode ser alterado após a criação.

    Variable Value

    Os valores das variáveis diferenciam maiúsculas de minúsculas. O valor pode ser modificado após a criação. Para obter detalhes, consulte {{XREF_7}}.

    Type (Plaintext/Ciphertext)

    O tipo não pode ser alterado após a criação.

    • Plaintext: O valor da variável fica diretamente visível na página Variables.

    • Ciphertext: O valor da variável fica oculto.

    Após a criação da variável, você pode visualizar seu nome, tipo, valor e hora de criação na lista da página Variables. Você também pode selecionar Edit ou Delete para a variável.

  3. Clique em OK.

Usar uma variável

Após criar uma variável, você pode referenciá-la usando o formato ${secret_values.variable_name}. Substitua "variable_name" pelo nome da sua variável.

Development

Você pode usar variáveis de namespace na seção Development do console do Realtime Compute for Apache Flink.

ETL (SQL)

Você pode usar variáveis no DDL de um job SQL referenciando-as com o formato ${secret_values.variable_name}, conforme mostrado no exemplo a seguir.

  • Ao usar como parâmetro em uma cláusula WITH, coloque a variável entre aspas simples: '${secret_values.variable_name}'.

  • Ao usar em outros locais (como nomes de tabelas ou campos SQL), coloque a variável entre crases: ${secret_values.variable_name}.

<Appender name="SLS" type="SLS">
  <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/>  
  <!-- The final effective log path is: ${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ -->
  <Property name="namespace">{{ namespace }}</Property> <!-- Do not modify this line -->
  <Property name="project">YOUR-SLS-PROJECT</Property>  
  <Property name="logStore">YOUR-SLS-LOGSTORE</Property> 
  <Property name="endpoint">YOUR-SLS-ENDPOINT</Property> 
  <Property name="accessKeyId">${secret_values.accessKeyId}</Property> 
  <Property name="accessKeySecret">${secret_values.accessKeySecret}</Property> 
  <Property name="topic">{{ namespace }}:{{ deploymentId }}:{{ jobId }}</Property>
  <Property name="deploymentName">{{ deploymentName }}</Property>
  <Property name="flushIntervalSeconds">10</Property>
  <Property name="flushIntervalEventCount">100</Property>
</Appender>

Ingestão de dados

<Appender name="SLS" type="SLS">
  <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/>  
  <!-- The final effective log path is: ${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ -->
  <Property name="namespace">{{ namespace }}</Property> <!-- Do not modify this line -->
  <Property name="project">YOUR-SLS-PROJECT</Property>  
  <Property name="logStore">YOUR-SLS-LOGSTORE</Property> 
  <Property name="endpoint">YOUR-SLS-ENDPOINT</Property> 
  <Property name="accessKeyId">${secret_values.accessKeyId}</Property> 
  <Property name="accessKeySecret">${secret_values.accessKeySecret}</Property> 
  <Property name="topic">{{ namespace }}:{{ deploymentId }}:{{ jobId }}</Property>
  <Property name="deploymentName">{{ deploymentName }}</Property>
  <Property name="flushIntervalSeconds">10</Property>
  <Property name="flushIntervalEventCount">100</Property>
</Appender>

Consulta de dados

<Appender name="SLS" type="SLS">
  <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/>  
  <!-- The final effective log path is: ${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ -->
  <Property name="namespace">{{ namespace }}</Property> <!-- Do not modify this line -->
  <Property name="project">YOUR-SLS-PROJECT</Property>  
  <Property name="logStore">YOUR-SLS-LOGSTORE</Property> 
  <Property name="endpoint">YOUR-SLS-ENDPOINT</Property> 
  <Property name="accessKeyId">${secret_values.accessKeyId}</Property> 
  <Property name="accessKeySecret">${secret_values.accessKeySecret}</Property> 
  <Property name="topic">{{ namespace }}:{{ deploymentId }}:{{ jobId }}</Property>
  <Property name="deploymentName">{{ deploymentName }}</Property>
  <Property name="flushIntervalSeconds">10</Property>
  <Property name="flushIntervalEventCount">100</Property>
</Appender>

Implantação JAR/Python

Você pode usar variáveis como argumentos para a função principal em implantações JAR/Python.

  1. No console de desenvolvimento, acesse O&M > Deployments e clique em Deploy Job.

  2. No campo Entry Point Main Arguments, insira o argumento usando o seguinte formato.

    Exemplo: --input ${secret_values.input}, onde ${secret_values.variable_name} é a sintaxe para referenciar uma variável.

    Para obter detalhes sobre outros parâmetros de implantação, consulte {{XREF_8}}.

  3. Clique em Deploy.

Configuração de parâmetros de tempo de execução

Você pode usar variáveis nos parâmetros de tempo de execução do job.

  1. Acesse a página O&M > Deployments e clique no job de destino.

  2. Na guia Deployment Details, clique em Edit no canto superior direito da seção Runtime Parameter Configuration e configure os parâmetros. Você pode usar variáveis como valores de parâmetro, conforme mostrado no exemplo a seguir.

    Na área de texto Other Configurations, use o formato ${secret_values.xxx} para referenciar variáveis. Por exemplo, para configurar as credenciais de acesso do Jindo OSS, defina parâmetros como fs.oss.jindo.buckets, fs.oss.jindo.accessKeyId e fs.oss.jindo.accessKeySecret.

  3. Clique em Save.

Configuração de log

  1. Acesse a página de configuração de log.

    • Para configurar o log de um único job, consulte {{XREF_9}}.

    • Para configurar o log de todos os jobs em um namespace, consulte {{XREF_10}}.

  2. Use variáveis na configuração de log.

    Por exemplo, ao configurar os logs do job para serem enviados ao SLS, você pode usar variáveis para 'accessKeyId' e 'accessKeySecret'. Para obter informações completas sobre a configuração de saída de log, consulte {{XREF_11}}.

    <Appender name="SLS" type="SLS">
      <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/>  
      <!-- The final effective log path is: ${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ -->
      <Property name="namespace">{{ namespace }}</Property> <!-- Do not modify this line -->
      <Property name="project">YOUR-SLS-PROJECT</Property>  
      <Property name="logStore">YOUR-SLS-LOGSTORE</Property> 
      <Property name="endpoint">YOUR-SLS-ENDPOINT</Property> 
      <Property name="accessKeyId">${secret_values.accessKeyId}</Property> 
      <Property name="accessKeySecret">${secret_values.accessKeySecret}</Property> 
      <Property name="topic">{{ namespace }}:{{ deploymentId }}:{{ jobId }}</Property>
      <Property name="deploymentName">{{ deploymentName }}</Property>
      <Property name="flushIntervalSeconds">10</Property>
      <Property name="flushIntervalEventCount">100</Property>
    </Appender>

Interface

Ao criar um Catalog pela interface, você pode usar variáveis nos itens de configuração.

  1. No painel de navegação à esquerda do console do Realtime Compute for Apache Flink, clique em Catalogs.

  2. Use variáveis na página Create Catalog. O exemplo a seguir mostra como usar uma variável chamada mysqlpassword para o parâmetro de senha em um MySQL Catalog.

    No campo password, insira ${secret_values.mysqlpassword} para referenciar o valor secreto.

Editar ou excluir uma variável

Nota

Tenha cuidado ao editar ou excluir variáveis. Essa ação pode fazer com que as implantações que as referenciam falhem ou exijam a reimplantação de jobs online. Jobs em execução não são afetados.

  1. Faça login no console do Realtime Compute for Apache Flink. Encontre o workspace de destino e clique em Console na coluna Actions.

  2. No painel de navegação à esquerda, clique em Security > Variables. Encontre a variável de destino e clique em Edit ou Delete na coluna Actions.

    • Editar

      Você pode alterar o valor de uma variável. Apenas membros com permissões de editor ou superiores podem editar variáveis.

    • Excluir

      Apenas membros com permissões de editor ou superiores, ou membros com a permissão específica para excluir variáveis, podem excluir variáveis.

Documentos relacionados

  • Para saber como desenvolver um job SQL, consulte {{XREF_12}}.

  • Para obter informações sobre os parâmetros de implantação para implantações JAR/Python, consulte {{XREF_13}}.

  • Para saber como criar e usar Catalogs, consulte {{XREF_14}}.

  • Para obter detalhes sobre os conectores suportados, consulte {{XREF_15}}.