📜  云函数环境变量 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:49:02.810000             🧑  作者: Mango

云函数环境变量 - Shell-Bash

在云函数中,我们经常需要使用一些配置信息,例如数据库连接字符串、API密钥、邮件服务器的地址等等。这些信息不应该硬编码在代码中,而是应该使用环境变量来存储,在代码中通过环境变量来获取。本文将介绍如何在云函数中使用 Shell-Bash 脚本来读取和设置环境变量。

读取环境变量

在 Shell-Bash 中,我们可以使用 echo $环境变量名称 来读取环境变量。例如,读取名为 DB_CONN_STR 的环境变量:

#!/bin/bash

echo $DB_CONN_STR

如果环境变量不存在,那么输出将为空。

设置环境变量

同样地,我们可以使用 export 环境变量名称=变量值 来设置环境变量。例如,设置名为 API_KEY 的环境变量:

#!/bin/bash

export API_KEY='xxxxxx'

如果需要在脚本中使用多个环境变量,可以使用多行赋值来进行设置:

#!/bin/bash

export DB_CONN_STR='xxxxxx'
export API_KEY='xxxxxx'
export EMAIL_SERVER='xxxxxx'
在云函数中使用环境变量

在云函数中,我们可以在执行函数时设置环境变量。以云函数的触发器设置为 API 网关为例,假设我们需要传递一个名为 user_id 的参数和名为 API_KEY 的环境变量:

import requests
import json
import os

def main_handler(event, context):
    user_id = event.get('user_id')
    api_key = os.environ.get('API_KEY')
    
    headers = {'X-Api-Key': api_key}
    response = requests.get(f'https://api.example.com/users/{user_id}', headers=headers)
    
    return {
        'statusCode': 200,
        'headers': {'Content-Type': 'application/json'},
        'body': json.dumps(response.json())
    }

在代码中使用 os.environ.get('环境变量名称') 的方式来获取环境变量的值。

总结

使用环境变量来存储配置信息是一个好的习惯。在云函数中,我们可以使用 Shell-Bash 脚本来读取和设置环境变量,同时在代码中使用 os.environ.get('环境变量名称') 的方式来获取环境变量的值。