由于 aws-exports,AWS 放大部署失败

Posted

技术标签:

【中文标题】由于 aws-exports,AWS 放大部署失败【英文标题】:AWS amplify deploy failure due to aws-exports 【发布时间】:2020-04-29 16:27:41 【问题描述】:

我正在尝试将我的 reactJs 应用程序部署到 Amplify。我将我的 Github 连接到 Amplify。在部署期间,它在构建步骤显示以下错误:

2020-01-07T19:35:22.127Z [INFO]: Failed to compile.
2020-01-07T19:35:22.129Z [INFO]: ./src/index.js
                                 Cannot find file './aws-exports' in './src'.
2020-01-07T19:35:22.149Z [WARNING]: error Command failed with exit code 1.
2020-01-07T19:35:22.150Z [INFO]: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
2020-01-07T19:35:22.155Z [ERROR]: !!! Build failed
2020-01-07T19:35:22.239Z [ERROR]: !!! Non-Zero Exit Code detected
2020-01-07T19:35:22.239Z [INFO]: # Starting environment caching...

发生这种情况是因为 .gitignore 忽略了 aws-exports。 有人可以在不提交 aws-exports 的情况下告诉我这个问题的解决方案是什么吗?

【问题讨论】:

如果找不到aws-exports,请尝试使用(放大拉)github.com/aws-amplify/amplify-cli/issues/186 【参考方案1】:

我在第一次构建时遇到了同样的问题。

Amplify 文档没有具体说明在使用 Amplify 控制台时应如何维护构建,但对我有用的例程是:

当您成功运行amplify push 命令时,您会生成您的aws-exports 文件。

aws-exports.js 文件 此文件仅为 javascript 生成 项目。它包含所有类别的综合输出 并且放在用户(开发者)的src目录下 在初始化过程中指定。每次成功后更新 执行放大推送命令,该命令已创建或更新 云资源。

基于此,我在 Amplify 控制台中更新了我的配置以部署我的后端。你可以在https://docs.aws.amazon.com/amplify/latest/userguide/build-settings.html了解如何配置自己的

backend:
  phases:
    build:
      commands:
        - '# Execute Amplify CLI with the helper script'
        - amplifyPush --simple

后端构建完成后,将为我的下一个工作生成文件,即使用 aws-exports 文件的前端构建。

注意:如果您使用的是 eslint,则文件输出格式可能会出现问题。你可以在你的前端preBuild添加一个eslint --fix命令

更新:正如lucdenz 提到的,您还需要设置一个service role

我使用的来源:

https://aws-amplify.github.io/docs/cli-toolchain/usage#aws-exportsjs-file

【讨论】:

很好的答案——这对我有帮助,谢谢。只是补充一下,如果您还没有后端的 ServiceRole,则需要添加一个才能使其正常工作。 amplifyPush --simple 记录在这里 -> docs.aws.amazon.com/amplify/latest/userguide/…。 还需要一个服务角色。文档可以在这里找到:docs.aws.amazon.com/amplify/latest/userguide/… 试过了,但构建失败并显示消息“资源不在堆栈更新完成状态”其他人得到这个吗? 因此,在此之后,我在后端构建中遇到了一些不同的问题:github.com/aws-amplify/amplify-cli/issues/6117(本地和远程版本不匹配),github.com/aws-amplify/amplify-cli/issues/5931(最新版本的 cli 的错误?),现在正在尝试处理使用github.com/aws-amplify/amplify-cli/issues/5791 并希望我可以手动推送它,但显然这不是一个选项github.com/aws-amplify/amplify-console/issues/956

以上是关于由于 aws-exports,AWS 放大部署失败的主要内容,如果未能解决你的问题,请参考以下文章

放大未捕获的 AppSync 订阅(承诺中)

如何使用 AWS Cognito 中的现有用户池生成 aws-exports.js?

使用 Amplify 集成构建 AWS Amplify React 应用程序时总是缺少 aws-exports.js

由于 NPM 警告,AWS Elastic Beanstalk 部署失败

如何将环境变量添加到 AWS 放大?

Rails 部署到 AWS ElasticBeanstalk/RDS 失败