无法从应用程序版本中提取配置文件 - CDK 使用 .ebextensions 部署 ElasticBeanstalk 应用程序

问题描述 投票:0回答:1

我有一个 PHP 应用程序,正在尝试使用 CDK 管道部署到 Beanstalk。
我使用

aws-s3-assets/Asset
将应用程序捆绑到 zip 文件中,然后将 BucketName 和 ObjectKey 作为
sourceBundle
参数传递给
aws-elasticbeanstalk/CfnApplicationVersion

当所有管道步骤完成并且 EB 环境更新开始执行其操作时,它会弹出以下警告:

应用程序版本test-beanstalk-phpapiversion-h1nvscneb6gl-1无法提取配置文件。检查应用程序版本是否是有效的 zip 或 war 文件。

然后成功继续,但 .ebextensions 配置文件看起来尚未在实例上运行(日志中没有任何配置输出)

令人困惑的是:

  • 当我上传同一文件夹的 zip 时,但使用 7zip 在本地创建(仍为 .zip 文件)。一切都很顺利,没有警告,并且 .ebextension 配置在实例上运行正常。 zip 文件中的文件结构完全相同。
  • 当我创建内容为
    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

amazon-web-services amazon-elastic-beanstalk aws-cdk
1个回答
0
投票

最干净、最合理的支持解决方案是忽略 .ebextension 配置文件并使用平台挂钩。此处详细信息在我将所有传统配置文件迁移到平台预期的格式和顺序后,将更新更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.