如何 运行 现有的 aws amplify 项目

How to run an existing aws amplify project

有人要求我处理现有的 aws amplify reactJs 项目。通常我会简单地从 github 或 bitbucket 克隆项目 repo,但这个项目是一个放大项目,需要一整套配置。我在 cli 上设置了几个 aws 配置文件,并且可以访问该项目的 aws cludservices,但无法在本地 运行 应用程序,因为我的 aws-exports.js 文件中没有所需的验证配置.

根据现有项目的 amplify cli docs,我应该可以 运行 amplify init --app https://bitbucket.org/brooklynva/brooklyn-ocr-poc.git。然而,这尝试更新 aws 上的 cloudformation 堆栈,谢天谢地失败了。它更新了 aws-exports.js 文件,但只更新了这个:

// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.

const awsmobile = {
    "aws_project_region": "us-east-2"
};


export default awsmobile;

然后我发现 运行ning amplify pull --frontend 和我放入 bash 文件中的一些其他参数等同于 运行ning git pull. 运行执行该命令后,配置文件中仍然没有任何更新。

#!/bin/bash
set -e
IFS='|'

REACTCONFIG="{\
\"SourceDir\":\"src\",\
\"DistributionDir\":\"build\",\
\"BuildCommand\":\"npm run-script build\",\
\"StartCommand\":\"npm run-script start\"\
}"
FRONTEND="{\
\"frontend\":\"javascript\",\
\"framework\":\"react\",\
\"config\":$REACTCONFIG\
}"

amplify pull \
--frontend $FRONTEND \
--yes

所以我的问题仍然存在,我如何从现有项目启动一个已经存在的 aws amplify 应用程序并在本地生成 运行 该应用程序所需的配置文件,而无需创建该应用程序的人, 与我共享该配置文件?

您需要创建或使用现有的 Amplify 环境

检查可用的环境

amplify env list

类似于git,它将显示环境列表(将其视为git上的分支)

查看现有环境之一或为您创建一个新环境,Amplify 允许您创建一个环境,例如,为特定用户创建环境,即:dev-myuser

amplify env checkout <exising-environment>

amplify env add

add 命令是交互式的,会询问您几个问题来设置您的环境

在那之后,你应该aws-exports.js设置

然后推送更改

amplify push

关于 Amplify 环境的更多详细信息: https://read.acloud.guru/multiple-serverless-environments-with-aws-amplify-344759e1be08

来自官方文档:https://aws-amplify.github.io/docs/cli-toolchain/quickstart#environments-and-teams

对我来说有用的是使用 amplify init 命令传递 appId 而不是 repo url。例如。 amplify init --appId YOUR_APP_ID

在我的案例中,流程是:

  1. git clone (link to project)
  2. yarn(或npm i
  3. npm install -g @aws-amplify/cli
  4. amplify configure
  5. amplify pull --appId (your app id) --envName (env name)
  6. yarn start / npm run start

    3,4 的文档 - https://docs.amplify.aws/cli/start/install/#option-2-follow-the-instructions
    5 的命令可以从放大控制台复制