微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在没有用户交互的情况下使用 AWS/Amplify CLI 部署现有 Amplify 应用程序的新版本?

如何解决如何在没有用户交互的情况下使用 AWS/Amplify CLI 部署现有 Amplify 应用程序的新版本?

我是使用 AWS Amplify 的新手,我刚刚发布了我自己的前端 WebApp,它是用 React 开发的。我刚刚压缩了我的构建文件夹并将生成的 zip 文件放到 AWS 控制台中。它工作正常。

enter image description here

然而,这项工作是手动完成的,我想自动化。除了 AWS 中的那些之外,我还有 CI&CD 服务器,它们可以很好地用于我的其他服务。所以我需要的是一个脚本来自动化我刚刚做的事情,因为我想重用我现有的 CI&CD 服务器。拥有这样的脚本将非常有用,因为我可以在本地或在 docker 容器中重现这些步骤。

我知道有一个解决方案:放大 CLI。但是,amplify initamplify configureamplify pull 等命令需要大量权限和大量用户交互,即使已经配置了 AWS 配置文件(带有密钥和访问密钥)。

做这样的事情会很棒:

amplify deploy build.zip <APP-ARN>

或(如果是文件夹)

amplify deploy /build <APP-ARN>

本质上,我只想自动化我手动执行的操作:上传(压缩的)构建文件夹以部署我的 AWS Amplify 应用程序。因此,这意味着没有用户交互。

如何做到这一点?

解决方法

您的解决方案是 git,aws amplify 能够观察 git 存储库并检测更改。如果您将其设置为监视的分支发生更改,它将自动构建一个新版本。

您可以将其设置为仅构建前端或同时构建后端(放大)和前端。

  1. 创建一个 git 仓库。您可以使用例如 github 或 aws codecommit

  2. 配置您的项目以发布到该 git 存储库

  3. 在 AWS Amplify 控制台中启动一个新应用程序或更改您现有的应用程序,以观看 git 存储库

  4. 将更改发布到 git repo 并在 amplify 控制台中观察它会自动构建您的应用程序的新版本

,

我对 AWS 和 Amplify 很陌生,但我认为包括 CI/CD 在内的设计理念是使用新的 Amplify 安装启动一个新的计算实例,并让负载均衡器在停止过时的实例后解决问题.这允许更容易的回滚等。

,

您可以使用 AWS CLI 实现您的目标。如果您在 CI/CD 管道中配置了 AWS CLI,则可以使用命令“start-deployment”。

aws amplify start-deployment --app-id <value> --branch-name <value> --source-url <value>

在上述命令中,使用 --source-url 参数指定 Amplify 可以从中下载 zip 文件的 URL(此 URL 应可公开访问)。上述命令运行后,您应该能够在 Amplify 控制台屏幕上看到部署。

您也可以使用 create-deployment 和 start-deployment 命令实现相同的目的。使用此方法,首先,您可以在 create-deployment 命令中传递 zip 文件,其次,在 start-deployment 命令期间,您不必使用 --source-url 参数。使用 Web UI 手动上传 zip 时,您可以看到这些命令在开发者工具的“网络”选项卡中被调用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。