Прямо сейчас у меня есть конвейер битбакета, который хорошо работает с одним шагом, например: ( options: docker: true )
- docker build --rm -f Dockerfile-deploy ./ -t deploy --build-arg AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID --build-arg AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
Это устанавливает ключи в контейнере Docker, которые затем развертываются в ELB с помощью сценария bash и AWS-CLI для фиксации, поэтому я на самом деле не пытаюсь раскрыть переменные env, но eb deploy
это точно делает, и это работает.
При попытке запустить конвейер с image: node:latest
и шагами
- npm i
- npm run build ( Babel transpile )
- npm run deploy ( node script to send to S3 )
На этом последнем шаге мне нужен скрипт узла, чтобы иметь доступ к переменным env, которые я добавил в конфигурацию конвейеров репозитория битбакета, вместо этого я получаю именованное представление переменной этой переменной:
// NodeJS Config File
module.exports = {
AWS_S3_BUCKET : process.env.AWS_S3_BUCKET || undefined,
AWS_ACCESS_KEY : process.env.AWS_ACCESS_KEY || undefined,
AWS_ACCESS_SECRET : process.env.AWS_ACCESS_SECRET || undefined,
}
-
// NodeJS deploy file... parts
const aws = {
params: {
Bucket: config.AWS_S3_BUCKET
},
accessKeyId: config.AWS_ACCESS_KEY,
secretAccessKey: config.AWS_ACCESS_SECRET,
distributionId: config.CLOUDFRONT_DISTRIBUTION_ID,
region: "us-east-1"
}
console.log('-----START AWS-----')
console.log(aws)
console.log('------END AWS------')
Затем конвейеры битбакета повторяют это для console.logs
-----START AWS-----
{ params: { Bucket: '$AWS_S3_BUCKET' },
accessKeyId: '$AWS_ACCESS_KEY',
secretAccessKey: '$AWS_ACCESS_SECRET',
distributionId: '$CLOUDFRONT_DISTRIBUTION_ID',
region: 'us-east-1' }
------END AWS------
Есть предположения?