日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

配置環境變量

更新時間: 2024-12-10 15:52:11

您可以使用環境變量,在不修改代碼的前提下靈活調整FC函數的行為。環境變量作為函數配置的一部分,以字符串鍵值對的方式存儲,不同函數擁有獨立的環境變量。本文介紹環境變量的基本信息、配置方式。

安全性

創建或者更新環境變量時,函數計算會對您的環境變量使用AES256(Advanced Encryption Standard 256)標準加密存儲,在初始化函數實例時,會將環境變量解密后注入到函數實例環境中。

使用限制

  • 字符集規則

    • Key的字符集:必須以大小寫字母開頭,只能包含大小寫字母、數字。

  • 大小限制

    所有環境變量的大小總和不能超過4 KB。

  • 系統預留環境變量

    為避免系統混淆,設置環境變量時,您不能使用系統預留的環境變量FC_*

    您可以使用以下系統環境變量:

    • FC_FUNC_CODE_PATH:代碼部署目錄。

    • ALIBABA_CLOUD_ACCESS_KEY_ID:用戶角色密鑰ID。

    • ALIBABA_CLOUD_ACCESS_KEY_SECRET:用戶角色密鑰。

    • ALIBABA_CLOUD_SECURITY_TOKEN:用戶角色臨時Token。

    • FC_ACCOUNT_ID:用戶ID。

    • FC_FUNCTION_HANDLER:用戶請求處理程序。

    • FC_FUNCTION_MEMORY_SIZE:函數配置的內存大小,單位為MB。

    • FC_FUNCTION_NAME:函數名稱。

    • FC_REGION:函數所屬地域。

    • FC_CUSTOM_LISTEN_PORT:函數自定義監聽端口。

    • FC_INSTANCE_ID:函數實例ID。

    重要

    系統環境變量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRETALIBABA_CLOUD_SECURITY_TOKEN為臨時密鑰敏感信息,請勿透漏給第三方。

使用場景

  • 跨平臺或跨服務共享代碼

    同一份代碼,在測試環境和生產環境運行時的配置可能存在差異。您可以通過環境變量的方式選擇使用不同的OSS的Bucket、數據庫或者表格。代碼在不同平臺部署時無需更改代碼。

  • 配置密鑰

    連接數據庫的用戶名和密碼、您的阿里云AccessKey或者其他安全敏感性的認證信息都可以通過環境變量設置。

  • 配置系統變量

    在配置PATH和HOME等目錄時能夠更靈活地使用系統庫。

通過控制臺配置環境變量

前提條件

創建函數

操作步驟

  1. 登錄函數計算控制臺,在左側導航欄,單擊函數

  2. 在頂部菜單欄,選擇地域,然后在函數頁面,單擊目標函數。

  3. 在函數配置頁面,選擇配置頁簽。

  4. 選擇左側環境變量頁簽,單擊編輯,選擇配置環境變量的方式,按照下方步驟完成配置,然后單擊部署

    • 使用表單編輯(默認方式)

      1. 單擊+添加變量

      2. 配置環境變量的鍵值對:

        • 變量:自定義。

        • :自定義。

    • 使用JSON格式編輯

      1. 單擊使用JSON格式編輯

      2. 在文本框內,輸入對應的JSON格式的鍵值對,格式如下。

        {
            "key": "value"
        }

        示例如下。

        {
            "BUCKET_NAME": "MY_BUCKET",
            "TABLE_NAME": "MY_TABLE"
        }
  5. 驗證環境變量是否創建成功。

    1. 在函數配置頁面,單擊代碼頁簽。

    2. 在代碼編輯器中編寫代碼,然后單擊部署代碼,等待部署成功后單擊測試函數

      本文以Python事件函數為例,驗證環境變量的代碼示例如下。

      # -*- 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. 代碼頁簽,查看日志輸出

      從打印日志中可以看出環境變量已經創建成功。

通過Serverless Devs配置環境變量

前提條件

操作步驟

  1. 創建一個用于測試的代碼目錄,如test

  2. 進入test目錄,創建index.pys.yaml文件。

    代碼目錄如下。

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

    index.py為代碼文件,代碼示例,請參見本頁面通過控制臺配置環境變量使用的示例代碼。

    s.yaml為函數配置文件,示例如下。

    edition: 3.0.0
    name: hello-world-app
    # access 是當前應用所需要的密鑰信息配置:
    # 密鑰配置可以參考:https://www.serverless-devs.com/serverless-devs/command/config
    # 密鑰使用順序可以參考:https://www.serverless-devs.com/serverless-devs/tool#密鑰使用順序與規范
    access: "default"
    
    vars: # 全局變量
      region: "cn-hangzhou"
    
    resources:
      hello_world:
        # 如果只想針對 hello_world 下面的業務進行相關操作,可以在命令行中加上 hello_world,例如:
        # 只對 hello_world 進行構建:s hello_world build
        # 如果不帶有 hello_world ,而是直接執行 s build,工具則會對當前Yaml下,所有和 hello_world 平級的業務模塊(如有其他平級的模塊,例如下面注釋的next_function),按照一定順序進行 build 操作
        component: fc3 # 組件名稱,Serverless Devs 工具本身類似于一種游戲機,不具備具體的業務能力,組件類似于游戲卡,用戶通過向游戲機中插入不同的游戲卡實現不同的功能,即通過使用不同的組件實現不同的具體業務能力
        # actions:       # 自定義執行邏輯,關于actions 的使用,可以參考:https://docs.serverless-devs.com/serverless-devs/yaml#%E8%A1%8C%E4%B8%BA%E6%8F%8F%E8%BF%B0actions
        props:
          region: ${vars.region}              #  關于變量的使用方法,可以參考:https://docs.serverless-devs.com/serverless-devs/yaml#%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC
          functionName: envdemo            #  聲明一個名稱為envdemo的函數
          description: 'hello world by serverless devs'
          runtime: python3                #  配置函數的運行環境
          code: ./code
          handler: index.handler              #  配置函數的請求處理程序
          memorySize: 128
          timeout: 30
          environmentVariables:     #  為函數配置如下兩個環境變量
              BUCKET_NAME: MY_BUCKET
              TABLE_NAME: MY_TABLE
          codeUri: ./               #  從當前目錄"./"部署函數。部署函數時,Serverless Devs會將當前目錄打包上傳
  3. 執行s deploy部署項目。

    執行成功后,您可以登錄函數計算控制臺查看已創建的函數,以及為該函數配置的兩個環境變量。

通過SDK配置環境變量

以Python SDK為例,環境變量的參數為environmentVariables,參數取值以字典形式存儲。創建、更新、獲取環境變量的示例代碼如下。

  • 創建環境變量

    # coding: utf-8
    import fc2
    import os
    
    client = fc2.Client(
        endpoint='your endpoint', # 接入點信息。
        # 建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
        # 本示例以將AccessKey ID和AccessKey Secret保存在環境變量中實現身份驗證為例。
        # 運行本示例前請先在本地環境中設置環境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
        # 在FC Runtime運行環境下,配置執行權限后,ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET環境變量會自動被設置。
        accessKeyID=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), # AccessKey ID,阿里云身份驗證,在RAM控制臺創建。
        accessKeySecret=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET') # AccessKey Secret,阿里云身份驗證,在RAM控制臺創建。
    
    client.create_service('test')
    
    client.create_function(
        'test', 'test_env', 'python3',  'main.handler',
        codeDir='/path/to/code/', environmentVariables={'testKey': 'testValue'})
    
    #test 服務名
    #test_env 函數名
    #python3  Runtime類型
    #main.handler 請求處理程序
    #codeDir 代碼目錄
    #environmentVariables 要配置的環境變量
    
    res = client.get_function('test', 'test_env')
    
    print(res.data)
      
  • 更新環境變量

    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)           
  • 獲取環境變量

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

在代碼中使用環境變量

關于如何在代碼中使用環境變量,請參見在代碼中使用環境變量

常見問題

可以為函數的不同版本設置不同的環境變量嗎?

可以。您在LATEST版本設置環境變量后,發布版本,然后修改環境變量,這樣LATEST版本和發布的新版本的環境變量就不相同。

想要控制臺不明文顯示環境變量的值如何處理?配置環境變量時如何加密敏感數據?

您可以將環境變量存儲在密鑰管理服務中,確保敏感信息以加密形式存儲,執行函數前,通過調用KMS的服務接口,對存儲的加密環境變量進行解密,解密后將環境變量設置到函數的運行環境中。更多信息,請參見什么是密鑰管理服務

上一篇: 標簽管理 下一篇: 在代碼中使用環境變量
阿里云首頁 函數計算 相關技術圈