Tüm Ürünler
Search
Belge Merkezi

Function Compute:Ortam değişkenlerini yapılandırın

Son Güncelleme:Oct 08, 2026

Kodunu değiştirmeden bir FC işlevinin davranışını ayarlamak için ortam değişkenlerini kullanabilirsiniz. Ortam değişkenleri, işlevin yapılandırmasında depolanan anahtar-değer çiftleridir. Her işlevin kendi ortam değişkenleri kümesi bulunur. Bu konuda ortam değişkenlerinin temelleri ve bunların nasıl yapılandırılacağı açıklanmaktadır.

Güvenlik

Ortam değişkenlerini oluştururken veya güncellerken Function Compute, bu değişkenleri Advanced Encryption Standard 256 (AES-256) kullanarak disk üzerinde şifreler. Bir işlev örneği başlatıldığında değişkenlerin şifresi çözülür ve örnek ortamına enjekte edilir.

Sınırlamalar

  • Karakter kümesi kuralları

    • Anahtar bir harfle başlamalı ve yalnızca harf, rakam ile alt çizgi (_) içerebilir.

  • Boyut sınırı

    Tüm ortam değişkenlerinin toplam boyutu 4 KB'ı aşamaz.

  • Ayrılmış sistem ortam değişkenleri

    Sistem çakışmalarını önlemek için FC_* ayrılmış ön ekiyle başlayan ortam değişkenlerini kullanamazsınız.

    Function Compute aşağıdaki sistem ortam değişkenlerini destekler:

    • FC_FUNC_CODE_PATH: Kod dağıtım dizini.

    • ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET ve ALIBABA_CLOUD_SECURITY_TOKEN: İşlevin yürütme rolünden alınan geçici kimlik bilgileri; AccessKey ID, AccessKey gizli anahtarı ve geçici belirteci içerir.

    • FC_ACCOUNT_ID: Kullanıcı Kimliği.

    • FC_FUNCTION_HANDLER: İşlev işleyicisi.

    • FC_FUNCTION_MEMORY_SIZE: İşlev için yapılandırılan bellek boyutu (MB cinsinden).

    • FC_FUNCTION_NAME: İşlev adı.

    • FC_REGION: İşlevin bulunduğu bölge.

    • FC_CUSTOM_LISTEN_PORT: İşlevin özel dinleme bağlantı noktası.

    • FC_INSTANCE_ID: İşlev örneğinin Kimliği.

    • FC_VER_ID: İşlev sürümünün Kimliği. Bu değişken Debian 10 ve önceki sürümlerdeki yerleşik çalışma zamanları için kullanılabilir.

    • FC_FUNCTION_VERSION: İşlev sürümünün Kimliği. Bu değişken Debian 11 ve sonraki sürümlerdeki yerleşik çalışma zamanları için kullanılabilir.

Kullanım senaryoları

  • Kodu platformlar veya hizmetler arasında paylaşma

    Farklı Object Storage Service (OSS) paketleri, veritabanları veya tablolar belirtmek gibi test ve üretim ortamları için farklı yapılandırmaları yönetmek amacıyla ortam değişkenlerini kullanabilirsiniz. Bu yaklaşım, aynı kod tabanını değişiklik yapmadan birden çok platformda dağıtmanıza olanak tanır.

  • Kimlik bilgilerini yapılandırma

    Veritabanı bağlantı kimlik bilgilerini, Alibaba Cloud AccessKey'inizi veya diğer hassas kimlik doğrulama bilgilerini ortam değişkenleri aracılığıyla ayarlayabilirsiniz.

  • Sistem değişkenlerini yapılandırma

    PATH ve HOME gibi dizinleri yapılandırarak sistem kitaplıklarını daha esnek bir şekilde kullanabilirsiniz.

Ortam değişkenlerini yapılandırın

Console

Önkoşullar

Bir işlev oluşturmuş olmalısınız. Daha fazla bilgi için bkz. İşlev oluşturma.

Yordam

  1. Function Compute konsolu nde oturum açın. Sol gezinme bölmesinde Function Management > Functions seçeneğini belirleyin.

  2. Üst gezinme çubuğunda bir bölge seçin. Functions sayfasında hedef işlevi tıklayın.

  3. İşlev ayrıntıları sayfasında Configuration sekmesini tıklayın, ardından Advanced Settings bölümünde Modify seçeneğine tıklayın.

  4. Advanced Settings panelinde, Environment Variables altında aşağıdaki yöntemlerden birini kullanarak değişkenleri yapılandırın ve Deploy seçeneğine tıklayın.

    • Form düzenleyiciyi kullanma

      1. + Add Variable seçeneğine tıklayın.

      2. Ortam değişkeni için bir anahtar-değer çifti yapılandırın:

        • Variable: Özel bir anahtar girin.

        • Value: Özel bir değer girin.

    • JSON düzenleyiciyi kullanma

      1. Use JSON format to edit seçeneğine tıklayın.

      2. Metin kutusuna aşağıdaki örnekte gösterildiği gibi anahtar-değer çiftlerini JSON biçiminde girin:

        {
            "key": "value"
        }

        Örnek:

        {
            "BUCKET_NAME": "MY_BUCKET",
            "TABLE_NAME": "MY_TABLE"
        }
  5. Ortam değişkenlerinin etkili olduğunu doğrulayın.

    1. İşlev ayrıntıları sayfasında Code sekmesine tıklayın.

    2. Kod düzenleyicide kodunuzu yazın, Deploy seçeneğine tıklayın. Dağıtım başarıyla tamamlandıktan sonra Test Function seçeneğine tıklayın.

      Aşağıdaki Python olay işlevi örnek kodu, ortam değişkenlerinin nasıl doğrulanacağını göstermektedir:

      # -*- 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. Code sekmesinde Log Output öğesini görüntüleyin. İşlev başarıyla yürütüldükten sonra yapılandırılan ortam değişkenleri günlüklerde görünür.

Serverless Devs

Önkoşullar

Serverless Devs yüklenmiş ve yapılandırılmış olmalıdır. Daha fazla bilgi için bkz. Hızlı başlangıç.

Yordam

  1. Test amacıyla bir kod dizini oluşturun, örneğin test.

  2. test dizinine gidin ve bir index.py dosyası ile bir s.yaml dosyası oluşturun.

    Kod dizini aşağıdaki gibi yapılandırılır:

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

    index.py dosyası işlev kodunuzu içerir. Örnek kod için Console bölümündeki örneğe bakın.

    s.yaml dosyası işlevin yapılandırma dosyasıdır. Aşağıda bir örnek verilmiştir:

    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. Projeyi dağıtmak için s deploy komutunu çalıştırın.

    Dağıtım başarıyla tamamlandıktan sonra Function Compute konsolu nde oturum açarak oluşturulan işlevi ve ortam değişkenlerini görüntüleyebilirsiniz.

SDK

Aşağıdaki örnekler Python SDK kullanır. Ortam değişkenlerini belirten sözlük kabul eden environmentVariables parametresi kullanılır. Örnek kod, bu değişkenlerin nasıl oluşturulacağını, güncelleneceğini ve alınacağını gösterir.

  • Ortam değişkenleri oluşturma

    # 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)
      
  • Ortam değişkenlerini güncelleme

    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)           
  • Ortam değişkenlerini alma

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

Kodunuzda ortam değişkenlerini kullanma

{"key":"val"} ortam değişkenini yapılandırdığınızı varsayarsak, aşağıdaki örnekler farklı çalışma zamanlarında bu değerin nasıl okunacağını gösterir.

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)

SSS

Farklı işlev sürümleri için farklı ortam değişkenleri ayarlayabilir miyim?

Evet. LATEST sürümü için ortam değişkenlerini ayarladıktan ve yeni bir sürüm yayınladıktan sonra LATEST sürümünün değişkenlerini değiştirebilirsiniz. Bu durumda LATEST sürümü, yayınlanan sürümden farklı ayarlara sahip olur.

Konsolda ortam değişkeni değerlerinin düz metin olarak görüntülenmesini nasıl önleyebilirim? Hassas verileri nasıl şifrelerim?

Hassas bilgilerin şifrelenerek saklanmasını sağlamak için ortam değişkenlerini Key Management Service içinde depolayabilirsiniz. İşlev yürütülmeden önce kodunuz KMS API'sini çağırarak bilgilerin şifresini çözebilir ve bunları işlevin çalışma zamanı ortamında ayarlayabilir. Daha fazla bilgi için bkz. Key Management Service (KMS) nedir?.

Bir ortam değişkeni kullanarak saat dilimini nasıl değiştiririm?

Bir işlev oluştururken bir saat dilimi seçebilirsiniz. Varsayılan olarak işlev örnekleri Eşgüdümlü Evrensel Saat (UTC) ile çalışır. İşlev oluşturulduktan sonra TZ ortam değişkenini ayarlayarak saat dilimini değiştirebilirsiniz. Örneğin, Çin Standart Saati'ni (UTC+8) kullanmak için TZ değerini Asia/Shanghai olarak ayarlayın.