首先,您需要一个运行 Node 版本 12(截至目前)的 EBS 应用程序和环境(Web 服务器)。您还需要在 Strapi 项目中更改 package.json 并更新 engines 部分,如下所示(主版本必须与 EBS 节点版本匹配):
"engines": {
"node": "12.X.Y", // minor (X) & patch (Y) versions are up to you
...
},
您必须将您的项目切换为使用 NPM 而不是 Yarn(EBS 目前仅支持开箱即用的 NPM),为此我推荐使用像 synp 这样的工具。 p>
然后创建一个Procfile,它将描述您希望 EBS 如何运行您的应用程序:
web: npm run start
然后手动部署,您可以首先(在项目根目录中)运行 npm install,然后运行 npm run build 来构建 Strapi Admin (React) 应用程序。构建 Strapi Admin 后,确保删除 node_modules 文件夹,因为 EBS 会自动为您安装依赖项。 (*)
最后一步是压缩整个项目(同样,在项目根目录中运行:zip -r application.zip .),将 zip 文件上传到 AWS EBS 并让它发挥作用。希望它应该安装依赖项并自动启动您的应用程序。
旁注:在您的项目中使用某些特定依赖项时(例如sharp),EBS 可能无法安装您的依赖项,要解决此问题,请添加一个.npmrc 文件到您的项目根目录包含以下内容:
unsafe-perm=true
附注 #2:您需要在 EBS 配置面板中设置一些环境变量才能让 Strapi 工作(如数据库凭据等)。
(*) 虽然您可以在您的应用程序中包含 node_modules 并将其压缩并上传到 EBS(这可能有效),但有时压缩 node_modules 可能会破坏一些依赖关系,因此我建议您删除它并让 EBS为您安装依赖项。