AWS Auth 参数在多个环境中被覆盖

AWS Auth parameters are overwritten in multiple env

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

截至目前,Amplify 不支持特定于 parameters.json 的环境。

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

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

Our solution depends on the amplify environment name. Currently, we use prod prefix for our production environments. So, you'll see something like process.env.USER_BRANCH.startsWith('prod')

config.json

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.js 之前 amplifyPush。例如

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