我有一个 PHP 应用程序,正在尝试使用 CDK 管道部署到 Beanstalk。
我使用
aws-s3-assets/Asset
将应用程序捆绑到 zip 文件中,然后将 BucketName 和 ObjectKey 作为 sourceBundle
参数传递给 aws-elasticbeanstalk/CfnApplicationVersion
当所有管道步骤完成并且 EB 环境更新开始执行其操作时,它会弹出以下警告:
应用程序版本test-beanstalk-phpapiversion-h1nvscneb6gl-1无法提取配置文件。检查应用程序版本是否是有效的 zip 或 war 文件。
然后成功继续,但 .ebextensions 配置文件看起来尚未在实例上运行(日志中没有任何配置输出)
令人困惑的是:
app/*
的 zip 时(解压后 app
的内容文件位于应用程序文件夹中),.ebextension 配置会运行,但找不到 Composer 配置。返回:您没有在源包中包含“composer.json”文件。部署未安装 Composer 依赖项。
我的文件夹结构是:
root
|_ infra (cdk app)
app (php app)
|_ .ebextensions
others_files
composer.json
我给的目录路径
aws-s3-assets/Asset
是:
path: ${__dirname}/../../app
最干净、最合理的支持解决方案是忽略 .ebextension 配置文件并使用平台挂钩。此处详细信息在我将所有传统配置文件迁移到平台预期的格式和顺序后,将更新更多详细信息。