AWS Amplify Fullstack CI/CD 中断 API(cors 问题)
AWS Amplify Fullstack CI/CD breaks API (cors issues)
我有一个使用 AWS REST Express lambda function API 的 Amplify 应用程序。它连接到 CI/CD,所以每当我推送到我的分支(接受 PR)时,应用程序的前端和后端服务都会被构建和部署。
此时,每当我接受 PR/推送代码时,应用程序 API 将停止工作。然后我必须获取我的本地代码,修改 API 的 app.js 文件并进行虚拟推送。我刚刚推送的相同代码(减去无用的注释),然后本地计算机和部署的 URL 上的应用程序再次开始工作。前端 build/deploy 工作正常 - 只是后端 build/deploy 导致 API 仅 return CORS 错误。
我的问题是如何修复我的 CI/CD,这样我就不需要在本地进行额外的部署。
一些额外的说明 - 这是一个 React 应用程序,在不同的 AWS 账户上部署了多个环境。
事实证明,为 CLI 推送和 CI/CD 部署部署的 API 堆栈存在差异。
解决方案是将我的 CI/CD Build Image 设置为与我的本地版本具有相同的 Amplify CLI。
这样做:
- 运行
amplify --version
在本地获取要复制到 Amplify 控制台的版本
- 复制 Amplify 控制台 > 构建设置 > 构建映像设置 > Amplify CLI 中的值
我有一个使用 AWS REST Express lambda function API 的 Amplify 应用程序。它连接到 CI/CD,所以每当我推送到我的分支(接受 PR)时,应用程序的前端和后端服务都会被构建和部署。
此时,每当我接受 PR/推送代码时,应用程序 API 将停止工作。然后我必须获取我的本地代码,修改 API 的 app.js 文件并进行虚拟推送。我刚刚推送的相同代码(减去无用的注释),然后本地计算机和部署的 URL 上的应用程序再次开始工作。前端 build/deploy 工作正常 - 只是后端 build/deploy 导致 API 仅 return CORS 错误。
我的问题是如何修复我的 CI/CD,这样我就不需要在本地进行额外的部署。
一些额外的说明 - 这是一个 React 应用程序,在不同的 AWS 账户上部署了多个环境。
事实证明,为 CLI 推送和 CI/CD 部署部署的 API 堆栈存在差异。
解决方案是将我的 CI/CD Build Image 设置为与我的本地版本具有相同的 Amplify CLI。
这样做:
- 运行
amplify --version
在本地获取要复制到 Amplify 控制台的版本 - 复制 Amplify 控制台 > 构建设置 > 构建映像设置 > Amplify CLI 中的值