是否可以在 Amplify.yml 文件(AWS Amplify)中为每个分支设置环境变量?

Jos*_*e A 5 environment-variables amazon-web-services aws-amplify

我目前正在使用 AWS Amplify 来管理我的前端。我一直在整个控制台中手动注入环境变量。

虽然我已经看到这一点(至少在这种情况下),但环境变量得到了正确的保护,如AWS 文档中所述。我想知道是否可以在amplify.yml每个分支的文件变量中设置不一定需要保护的变量。

像这样的东西:

version: 0.1
env:
  variables:
    myvarOne:
      branch: master
        value: ad
      branch: dev
        value otherval
frontend:
  phases:
    preBuild:
      commands:
        - yarn install
        - yarn lint
        - yarn test
    build:
      commands:
        - yarn build build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

Run Code Online (Sandbox Code Playgroud)

dan*_*nca 6

到目前为止,似乎没有适合您的问题的理想解决方案但是,可以采取一些解决方法来使类似的事情发挥作用

您不能拥有每个分支环境变量,但可以拥有每个分支命令

因此,您可以为不同的分支定义不同的变量并根据需要运行适当的命令

version: 0.1
env:
  variables:
    myvarOne:
      value_master: val
      value_dev: otherval
frontend:
  phases:
    preBuild:
      commands:
        - if [ "${AWS_BRANCH}" = "master" ]; then export VALUE=${value_master}; fi
        - if [ "${AWS_BRANCH}" = "dev" ]; then export VALUE=${value_dev}; fi
        - yarn install
        - yarn lint
        - yarn test
    build:
      commands:
        - yarn build build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*
Run Code Online (Sandbox Code Playgroud)


pap*_*apa 6

我可能很晚才得到答案,但截至撰写本文时,似乎针对您的情况存在一个开箱即用的解决方案。

根据几乎逐字的文档,它要求您执行以下操作:

  1. 在此处登录 AWS 管理控制台。
  2. 导航到应用程序设置 > 环境变量 > 管理变量。
  3. 管理变量部分的变量下,输入您的密钥。对于,输入您的值。
  4. 选择操作,然后选择添加变量覆盖。。您可以根据分支覆盖密钥的环境变量。
  5. 您现在拥有一组特定于您的分支的环境变量。

GIF更好地说明了步骤 4-5。

我没有足够的 stackoverflow 声誉来添加图像,因此请参阅文档中的第五点,其中描述了为特定分支添加变量覆盖的方法。 https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html