Конвейеры Bitbucket, используйте ENV VARS в сценарии NodeJS для развертывания в S3 Deploy

Прямо сейчас у меня есть конвейер битбакета, который хорошо работает с одним шагом, например:
( 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------

Есть предположения?


person Eric Hodonsky    schedule 20.12.2017    source источник


Ответы (1)


Ну, моя проблема заключалась в том, что я копирую вставленные переменные из AWS с конечным пробелом ... который является символом, но, конечно, не в ожидаемой секретной или ключевой строке. Ой

person Eric Hodonsky    schedule 28.12.2017