首页 > 解决方案 > AWS Auth 参数在多个环境中被覆盖

问题描述

我对每个环境都有不同的回调 URL,如果我使用并修复 URL,如果我合并到我的分支amplify auth update中,它仍然会被覆盖,这非常令人沮丧。不确定解决方案是什么。amplify/backend/auth/projectname/parameters.jsonmasterdev

标签: amazon-web-servicesaws-amplify

解决方案


截至目前,Amplify 对特定于parameters.json.

对我们团队有用的是我们parameters.json在 CI/CD 管道中覆盖我们的(我们只有生产环境的不同参数)

所以,我们制作了一个脚本(在节点中)。这是我们自定义配置的一个示例。

我们的解决方案取决于放大环境名称。目前,我们在生产环境中使用 prod 前缀。所以,你会看到类似process.env.USER_BRANCH.startsWith('prod')

配置文件

module.exports = {
    'api': {
        filePath: 'amplify/backend/api/myproject/parameters.json',
        override: {
            production: {
                ElasticSearchInstanceCount: 3,
                ElasticSearchInstanceType: 't2.medium.elasticsearch'
            }
        }
    }
}

script.js(不是完整版本)

if(!process.env.USER_BRANCH || !process.env.USER_BRANCH.startsWith('prod')) return
const parameter = JSON.parse(fs.readFileSync(config.filePath))
const overrideConfig = config.override['production']
fs.writeFileSync(config.filePath, JSON.stringify({
   ...parameter,
   ...overrideConfig
}))

最后,在你的,之前amplify.yml运行。例如node ./script.jsamplifyPush

version: 0.1
backend:
  phases:
    build:
      commands:
        - node ./scripts/src/amplify-parameters-override/script.js
        - amplifyPush --simple

推荐阅读