На данный момент Amplify не поддерживает спецификацию среды, определяющую c для parameters.json
.
Для нашей команды работает то, что мы перезаписываем наш parameters.json
в нашем конвейере CI / CD ( у нас только разные параметры для производственной среды)
поэтому мы создали скрипт (в узле). Это пример нашей пользовательской конфигурации.
Наше решение зависит от имени среды амплификации. В настоящее время мы используем префикс prod для наших производственных сред. Итак, вы увидите что-то вроде 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