您可以使用环境变量来调整函数的行为,而无需更新代码。环境变量是存储在函数的特定于版本的配置中的一对字符串。Lambda 运行时使环境变量可用于您的代码,并设置包含有关函数和调用请求的信息的其他环境变量。
在函数调用之前不评估环境变量。您定义的任何值都被视为文字字符串而不是扩展的。在函数代码中执行变量评估。
您在函数的未发布版本上定义环境变量。当您发布一个版本时,该版本的环境变量以及其他特定于版本的配置都会被锁定。
您可以通过定义键和值来为函数创建环境变量。您的函数使用键的名称来检索环境变量的值。
在 Lambda 控制台中设置环境变量
1.打开功能页面Lambda 控制台。
2.选择一个功能。
3.选择配置,然后选择环境变量。
4.在环境变量下,选择编辑。
5.选择添加环境变量。
6.输入键和值。
要求
键以字母开头,至少有两个字符。
键仅包含字母、数字和下划线字符 ( _)。
Lambda不保留密钥。
所有环境变量的总大小不超过 4 KB。
7.选择保存。
要使用 AWS CLI 或 AWS 开发工具包管理环境变量,请使用以下 API 操作。
更新功能配置
获取函数配置
创建函数
以下示例在名为 的函数上设置两个环境变量my-function。
aws lambda update-function-configuration --function-name my-function \
--environment "Variables={BUCKET=my-bucket,KEY=file.txt}"
当您使用该update-function-configuration命令应用环境变量时,Variables结构的全部内容都会被替换。要在添加新环境变量时保留现有环境变量,请在请求中包含所有现有值。
要获取当前配置,请使用get-function-configuration命令。
aws lambda get-function-configuration --function-name my-function
您应该看到以下输出:
{
"FunctionName": "my-function",
"FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function",
"Runtime": "nodejs16.x",
"Role": "arn:aws:iam::123456789012:role/lambda-role",
"Environment": {
"Variables": {
"BUCKET": "my-bucket",
"KEY": "file.txt"
}
},
"RevisionId": "0894d3c1-2a3d-4d48-bf7f-abade99f3c15",
...
}
为确保读取配置和更新配置之间的值不会发生变化,您可以将修订 IDget-function-configuration作为参数从输出传递到 update-function-configuration.
要配置函数的加密密钥,请设置该KMSKeyARN选项。
aws lambda update-function-configuration --function-name my-function \
--kms-key-arn arn:aws:kms:us-east-2:123456789012:key/055efbb4-xmpl-4336-ba9c-538c7d31f599
Lambda运行时在初始化期间设置了几个环境变量。大多数环境变量提供有关函数或运行时的信息。这些环境变量的键是保留的,不能在你的函数配置中设置。
保留的环境变量
_HANDLER– 在函数上配置的处理程序位置。
_X_AMZN_TRACE_ID– X 射线跟踪标头。此环境变量未为自定义运行时定义(例如,使用provided或provided.al2标识符的运行时)。您可以使用Next 调用中的响应标头设置_X_AMZN_TRACE_ID自定义运行时。Lambda-Runtime-Trace-Id
AWS_REGION– 执行 Lambda 函数的 AWS 区域。
AWS_EXECUTION_ENV–运行时标识符,前缀为AWS_Lambda_(例如,AWS_Lambda_java8)。此环境变量未为自定义运行时定义(例如,使用provided或provided.al2标识符的运行时)。
AWS_LAMBDA_FUNCTION_NAME– 函数的名称。
AWS_LAMBDA_FUNCTION_MEMORY_SIZE– 函数可用的内存量(以 MB 为单位)。
AWS_LAMBDA_FUNCTION_VERSION– 正在执行的函数的版本。
AWS_LAMBDA_INITIALIZATION_TYPE– 函数的初始化类型,要么是on-demand要么provisioned-concurrency。
AWS_LAMBDA_LOG_GROUP_NAME, AWS_LAMBDA_LOG_STREAM_NAME– 函数的 Amazon CloudWatch Logs 组和流的名称。
AWS_ACCESS_KEY, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN – 从函数的执行角色获得的访问密钥。
AWS_LAMBDA_RUNTIME_API–(自定义运行时)运行时 API的主机和端口。
LAMBDA_TASK_ROOT– Lambda 函数代码的路径。
LAMBDA_RUNTIME_DIR– 运行时库的路径。
以下附加环境变量不是保留的,可以在您的函数配置中进行扩展。
未保留的环境变量
LANG– 运行时的语言环境 ( en_US.UTF-8)。
PATH– 执行路径 ( /usr/local/bin:/usr/bin/:/bin:/opt/bin)。
LD_LIBRARY_PATH– 系统库路径 ( /lib64:/usr/lib64:$LAMBDA_RUNTIME_DIR:$LAMBDA_RUNTIME_DIR/lib:$LAMBDA_TASK_ROOT:$LAMBDA_TASK_ROOT/lib:/opt/lib)。
NODE_PATH– ( Node.js ) Node.js 库路径 ( /opt/nodejs/node12/node_modules/:/opt/nodejs/node_modules:$LAMBDA_RUNTIME_DIR/node_modules)。
PYTHONPATH– ( Python 2.7, 3.6, 3.8 ) Python 库路径 ( $LAMBDA_RUNTIME_DIR)。
GEM_PATH– ( Ruby ) Ruby 库路径 ( $LAMBDA_TASK_ROOT/vendor/bundle/ruby/2.5.0:/opt/ruby/gems/2.5.0)。
AWS_XRAY_CONTEXT_MISSING– 对于 X-Ray 跟踪,Lambda 将其设置 LOG_ERROR为避免从 X-Ray SDK 引发运行时错误。
AWS_XRAY_DAEMON_ADDRESS– 对于 X 射线跟踪,X 射线守护程序的 IP 地址和端口。
AWS_LAMBDA_DOTNET_PREJIT– 对于 .NET 3.1 运行时,设置此变量以启用或禁用 .NET 3.1 特定的运行时优化。值包括 always、never和provisioned-concurrency。
TZ– 环境的时区 ( UTC)。执行环境使用 NTP 来同步系统时钟。
显示的示例值反映了最新的运行时。特定变量的存在或其值在早期运行时可能会有所不同。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习