专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 使用 AWS Lambda 环境变量

使用 AWS Lambda 环境变量

更新时间:2022-10-18 09:42:08 来源:赢咖4 浏览527次

您可以使用环境变量来调整函数的行为,而无需更新代码。环境变量是存储在函数的特定于版本的配置中的一对字符串。Lambda 运行时使环境变量可用于您的代码,并设置包含有关函数和调用请求的信息的其他环境变量。

在函数调用之前不评估环境变量。您定义的任何值都被视为文字字符串而不是扩展的。在函数代码中执行变量评估。

配置环境变量

您在函数的未发布版本上定义环境变量。当您发布一个版本时,该版本的环境变量以及其他特定于版本的配置都会被锁定。

您可以通过定义键和值来为函数创建环境变量。您的函数使用键的名称来检索环境变量的值。

在 Lambda 控制台中设置环境变量

1.打开功能页面Lambda 控制台。

2.选择一个功能。

3.选择配置,然后选择环境变量。

4.在环境变量下,选择编辑。

5.选择添加环境变量。

6.输入键和值。

要求

键以字母开头,至少有两个字符。

键仅包含字母、数字和下划线字符 ( _)。

Lambda不保留密钥。

所有环境变量的总大小不超过 4 KB。

7.选择保存。

使用 API 配置环境变量

要使用 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 来同步系统时钟。

显示的示例值反映了最新的运行时。特定变量的存在或其值在早期运行时可能会有所不同。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>