我正在 AWS Elastic Beanstalk 上部署带有 mysql 应用程序的 django,因此mysqlclient需要库。mysqlclient需要python3-devel和mysql-devel要安装的包,所以我有它的自定义配置文件01_packages.config:
packages:
yum:
python3-devel: []
mysql-devel: []
Run Code Online (Sandbox Code Playgroud)
部署失败,日志文件/var/log/cfn-init.log(在 Beanstalk 日志中提到)显示错误:
2020-05-31 02:17:37,565 [INFO] -----------------------Starting build-----------------------
2020-05-31 02:17:37,572 [INFO] Running configSets: Infra-EmbeddedPreBuild
2020-05-31 02:17:37,575 [INFO] Running configSet Infra-EmbeddedPreBuild
2020-05-31 02:17:37,579 [INFO] Running config prebuild_0_doyouknow
2020-05-31 02:17:41,831 [ERROR] mysql-devel is not available to be installed
2020-05-31 02:17:41,831 [ERROR] Error encountered during build of prebuild_0_doyouknow: Yum does no
t have mysql-devel available for installation …Run Code Online (Sandbox Code Playgroud) 我已经在 ECR 上推送了一个 Docker 镜像。我还使用它通过 AWS 控制台从容器映像创建 lambda 函数,并且运行成功。
现在,我想通过 AWS CDK 创建该函数。
在__init__lambda stack 类的函数中,我添加了:
repo = aws_ecr.Repository.from_repository_name(scope, "Repository", repository_name="my-repo-name")
lambdaFn = aws_lambda.DockerImageFunction(
self, "Test Function",
code=aws_lambda.DockerImageCode.from_ecr(repo),
timeout=core.Duration.seconds(600),
memory_size=8192,
environment=dict(PATH="/opt"),
role = role
)
Run Code Online (Sandbox Code Playgroud)
我在从 ECR 上的现有存储库定义变量时遇到问题repo。