Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
我想使用 Amazon Elastic Container Registry (Amazon ECR) 映像和 Docker 来创建与我的环境运行时兼容的 AWS Lambda 层。
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。以下解决方法使用 Python 和 Linux。对于其他编码语言和操作系统 (OS),步骤可能会有所不同。
**先决条件:**在计算机上安装 Docker。有关安装步骤,请参阅 Docker 文档网站上的 Get Docker(获取 Docker)和 Install Docker Engine(安装 Docker 引擎)(仅限 Linux)。
创建目录结构,并在 requirements.txt pip 要求文件中指定您的依赖项。有关如何指定依赖项的详细信息,请参阅 pip 网站上的 Requirements files(要求文件)。
以下示例目录结构适用于与 Python 3.x 兼容的 Lambda 层:
my-layer/ ├── requirements.txt └── python/
**注意:**该函数连同所有 Lambda 层解压缩后的总大小不得超出解压缩部署包大小的上限 (250 MB)。有关 Lambda 中 Python 版本支持的信息,请参阅使用 Python 构建 Lambda 函数。
对于在目录结构中指定的每个运行时,运行以下命令一次:
docker run -v "$PWD":/var/task "public.ecr.aws/sam/build-python3.x" /bin/sh -c "pip install -r requirements.txt -t python/; exit"
**注意:**请将 3.x 替换为您要安装的兼容 Python 库。
要压缩 python 文件夹并创建 Lambda 层包,请运行以下命令:
zip -r mypythonlibs.zip python > /dev/null
**注意:**请将 mypythonlibs 替换为 Lambda 层包的名称。
运行以下 publish-layer-version AWS CLI 命令:
aws lambda publish-layer-version --layer-name mypythonlibs --description "My python libs" --zip-file fileb://mypythonlibs.zip --compatible-runtimes "python3.x"
**注意:**请将 mypythonlibs 替换为您的 Lambda 层包名称,将 My python libs 替换为 Lambda 层包的描述,将 python3.x 替换为已安装的 Python 库。
在输出中,记下 Lambda 层的 Amazon 资源名称 (ARN)。
运行以下 update-function-configuration 命令:
aws lambda update-function-configuration --layers arn:aws:lambda:us-east-2:123456789012:layer:mypythonlibs:1 --function-name my-function
**注意:**请将 arn:aws:lambda:us-east-2:123456789012:layer:mypythonlibs:1 替换为 Lambda 层 ARN,将 my-function 替换为您的函数名称。上述命令会将层放置在 Lambda 环境的 /opt 文件夹中。您可以通过 Lambda 函数代码访问 /opt 文件夹。
如何解决 Python (Boto3) Lambda 函数中的"unknown service"、"parameter validation failed"或"object has no attribute"错误?
New for AWS Lambda – use any programming language and share common components(AWS Lambda 的新增功能 – 支持使用任意编程语言并可共享通用组件)
Amazon ECR 公开映像浏览馆