Todos os produtos
Search
Central de documentação

Function Compute:Configurar variáveis de ambiente

Última atualização: Jun 29, 2026

Use variáveis de ambiente para ajustar o comportamento de uma função do FC sem alterar o código. Variáveis de ambiente são pares chave-valor do tipo string armazenados na configuração da função. Cada função possui seu próprio conjunto de variáveis de ambiente. Este tópico descreve os conceitos básicos das variáveis de ambiente e como configurá-las.

Segurança

Ao criar ou atualizar variáveis de ambiente, o Function Compute as criptografa em repouso usando o Advanced Encryption Standard 256 (AES-256). Quando uma instância da função é inicializada, as variáveis são descriptografadas e injetadas no ambiente da instância.

Limitações

  • Regras de conjunto de caracteres

    • A chave deve começar com uma letra e conter apenas letras, dígitos e sublinhados (_).

  • Limite de tamanho

    O tamanho total de todas as variáveis de ambiente não pode exceder 4 KB.

  • Variáveis de ambiente de sistema reservadas

    Para evitar conflitos de sistema, não use variáveis de ambiente com o prefixo reservado FC_*.

    O Function Compute oferece suporte às seguintes variáveis de ambiente de sistema:

    • FC_FUNC_CODE_PATH: diretório de implantação do código.

    • ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET e ALIBABA_CLOUD_SECURITY_TOKEN: credenciais temporárias obtidas da função de execução da função, incluindo AccessKey ID, AccessKey secret e token temporário.

    • FC_ACCOUNT_ID: ID do usuário.

    • FC_FUNCTION_HANDLER: handler da função.

    • FC_FUNCTION_MEMORY_SIZE: tamanho de memória configurado para a função, em MB.

    • FC_FUNCTION_NAME: nome da função.

    • FC_REGION: região onde a função reside.

    • FC_CUSTOM_LISTEN_PORT: porta de escuta personalizada da função.

    • FC_INSTANCE_ID: ID da instância da função.

    • FC_VER_ID: ID da versão da função. Esta variável está disponível para runtimes integrados no Debian 10 e anteriores.

    • FC_FUNCTION_VERSION: ID da versão da função. Esta variável está disponível para runtimes integrados no Debian 11 e posteriores.

Casos de uso

  • Compartilhar código entre plataformas ou serviços

    Use variáveis de ambiente para gerenciar configurações diferentes para ambientes de teste e produção, como especificar buckets distintos do Object Storage Service (OSS), bancos de dados ou tabelas. Isso permite implantar a mesma base de código em várias plataformas sem modificações.

  • Configurar credenciais

    Defina credenciais de conexão com banco de dados, seu AccessKey do Alibaba Cloud ou outras informações sensíveis de autenticação por meio de variáveis de ambiente.

  • Configurar variáveis de sistema

    Use bibliotecas de sistema com mais flexibilidade ao configurar diretórios como PATH e HOME.

Configurar variáveis de ambiente

Console

Pré-requisitos

Uma função criada. Para obter mais informações, consulte Criar uma função.

Procedimento

  1. Faça login no console do Function Compute. No painel de navegação à esquerda, escolha Function Management > Functions.

  2. Na barra de navegação superior, selecione uma região. Na página Functions, clique em na função desejada.

  3. Na página de detalhes da função, clique em na aba Configuration e, em seguida, na seção Advanced Settings, clique em Modify.

  4. No painel Advanced Settings, em Environment Variables, configure as variáveis usando um dos métodos a seguir e clique em Deploy.

    • Usar o editor de formulário

      1. Clique em + Add Variable.

      2. Configure um par chave-valor para a variável de ambiente:

        • Variable: insira uma chave personalizada.

        • Value: insira um valor personalizado.

    • Usar o editor JSON

      1. Clique em Use JSON format to edit.

      2. Na caixa de texto, insira os pares chave-valor no formato JSON, conforme mostrado no exemplo a seguir:

        {
            "key": "value"
        }

        Exemplo:

        {
            "BUCKET_NAME": "MY_BUCKET",
            "TABLE_NAME": "MY_TABLE"
        }
  5. Verifique se as variáveis de ambiente entraram em vigor.

    1. Na página de detalhes da função, clique em na aba Code.

    2. No editor de código, escreva seu código e clique em Deploy. Após a implantação bem-sucedida, clique em Test Function.

      O código de exemplo a seguir para uma função de evento Python mostra como verificar as variáveis de ambiente:

      # -*- coding: utf-8 -*-
      import logging
      import os
      
      def handler(event, context):
          logger = logging.getLogger()
          value = os.environ.get('BUCKET_NAME')
          logger.info('BUCKET_NAME: {}'.format(value))
          value = os.environ.get('TABLE_NAME')
          logger.info('TABLE_NAME: {}'.format(value))
          return "done"
    3. Na aba Code, visualize a Log Output. Após a execução bem-sucedida da função, as variáveis de ambiente configuradas aparecem nos logs.

Serverless Devs

Pré-requisitos

Serverless Devs instalado e configurado. Para obter mais informações, consulte Início rápido.

Procedimento

  1. Crie um diretório de código para testes, como test.

  2. Acesse o diretório test e crie um arquivo index.py e um arquivo s.yaml.

    O diretório de código tem a seguinte estrutura:

    .
    ├── code
    │   └── index.py
    └── s.yaml

    O arquivo index.py contém o código da sua função. Para o código de exemplo, consulte o exemplo na seção Console.

    O arquivo s.yaml é o arquivo de configuração da função. Veja um exemplo abaixo:

    edition: 3.0.0
    name: hello-world-app
    # access: specifies the required credential information for the application.
    # For more information about how to configure credentials, see https://www.serverless-devs.com/serverless-devs/command/config
    # For more information about the credential priority, see https://www.serverless-devs.com/serverless-devs/tool#credential-priority-and-specifications
    access: "default"
    
    vars: # Global variables
      region: "cn-hangzhou"
    
    resources:
      hello_world:
        # To perform an operation only on a specific service like hello_world, specify its name in the command. Example:
        # Build only for the hello_world service: s hello_world build
        # If you run the s build command without specifying a service, Serverless Devs performs the build operation on all services that are at the same level as hello_world in the YAML file.
        component: fc3 # The component name. Serverless Devs uses components to extend its capabilities. This component enables Function Compute features.
        # actions: # Custom execution logic. For more information, see https://docs.serverless-devs.com/serverless-devs/yaml#actions.
        props:
          region: ${vars.region} # For more information about how to use variables, see https://docs.serverless-devs.com/serverless-devs/yaml#variable-assignment.
          functionName: envdemo # Declares a function named envdemo.
          description: 'hello world by serverless devs'
          runtime: python3 # Specifies the function runtime.
          code: ./code
          handler: index.handler # Specifies the function handler.
          memorySize: 128
          timeout: 30
          environmentVariables: # Configures two environment variables for the function.
              BUCKET_NAME: MY_BUCKET
              TABLE_NAME: MY_TABLE
          codeUri: ./ # Deploys the function from the current directory "./". During deployment, Serverless Devs packages and uploads the current directory.
  3. Execute o comando s deploy para implantar o projeto.

    Após uma implantação bem-sucedida, faça login no console do Function Compute para visualizar a função criada e suas variáveis de ambiente.

SDK

Os exemplos a seguir usam o SDK para Python. O parâmetro environmentVariables, que aceita um dicionário, especifica as variáveis de ambiente. O código de exemplo mostra como criar, atualizar e recuperá-las.

  • Criar variáveis de ambiente

    # coding: utf-8
    import fc2
    import os
    
    client = fc2.Client(
        endpoint='your endpoint', # The endpoint.
        # We recommend not storing your AccessKey ID and AccessKey secret in your code.
        # Leaking this sensitive information can compromise the security of your resources.
        # This example uses environment variables for authentication.
        # Before running this code, set the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables locally.
        accessKeyID=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), # Your AccessKey ID, used for authentication. You can create and manage it in the RAM console.
        accessKeySecret=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET') # Your AccessKey secret, used for authentication. You can create and manage it in the RAM console.
    )
    
    client.create_service('test')
    
    client.create_function(
        'test', # The service name.
        'test_env', # The function name.
        'python3',  # The runtime.
        'main.handler', # The handler.
        codeDir='/path/to/code/', # The code directory.
        environmentVariables={'testKey': 'testValue'} # The environment variables to configure.
    )
    
    res = client.get_function('test', 'test_env')
    
    print(res.data)
      
  • Atualizar variáveis de ambiente

    client.update_function(
        'test', 'test_env', 'python3',  'main.handler',
        codeDir='/path/to/code/', environmentVariables={'newKey': 'newValue'})
    res = client.get_function('test', 'test_env')
    print(res.data)           
  • Obter variáveis de ambiente

    resp = client.get_function('test', 'test_env')
    env = func['environmentVariables']

Usar variáveis de ambiente no seu código

Supondo que você tenha configurado a variável de ambiente {"key":"val"}, os exemplos a seguir mostram como ler seu valor em diferentes runtimes.

var value = process.env.key
console.log(value)
import os
value = os.environ.get('key')
print(value)
$value = getenv('key');
System.out.println("value: "+ System.getenv("key"));
string value = Environment.GetEnvironmentVariable("key");
Console.WriteLine("value: {0}", value);
var value = os.Getenv("key")
fmt.Printf("value: %s\n", value)

Perguntas frequentes

Posso definir variáveis de ambiente diferentes para versões diferentes da função?

Sim. Depois de definir variáveis de ambiente para a versão LATEST e publicar uma nova versão, modifique as variáveis da versão LATEST. Assim, a versão LATEST terá configurações diferentes da versão publicada.

Como posso evitar que os valores das variáveis de ambiente sejam exibidos em texto simples no console? Como criptografar dados sensíveis?

Armazene variáveis de ambiente no Key Management Service para garantir que informações sensíveis fiquem criptografadas. Antes da execução da função, seu código pode chamar a API do KMS para descriptografar as informações e defini-las no ambiente de execução da função. Para obter mais informações, consulte O que é o Key Management Service (KMS)?.

Como altero o fuso horário usando uma variável de ambiente?

Ao criar uma função, selecione um fuso horário. Por padrão, as instâncias da função executam no Tempo Universal Coordenado (UTC). Após a criação da função, altere o fuso horário definindo a variável de ambiente TZ. Por exemplo, para usar o Horário Padrão da China (UTC+8), defina TZ como Asia/Shanghai.