最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Bitbucket管道,在NodeJS脚本中使用ENV VARS部署到S3 Deploy

IT培训 admin 1浏览 0评论

Bitbucket管道,在NodeJS脚本中使用ENV VARS部署到S3 Deploy

现在我有一个bitbucket管道,只需一步就可以正常工作: ( 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容器中的密钥,然后使用bash脚本和AWS-CLI将其部署到ELB,因此我实际上并没有尝试公开env变量,但是eb deploy肯定会这样做并且它可以正常工作。

当尝试使用image: node:latest和步骤运行管道时

- npm i
- npm run build ( Babel transpile )
- npm run deploy ( node script to send to S3 )

最后一步我需要节点脚本才能访问我已添加到bitbucket repo管道配置的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------')

然后bitbucket管道为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------

有什么想法吗?

回答如下:

好吧,我的问题是我复制了来自AWS的变量和尾随空格...这是一个字符,但肯定不在预期的密钥或密钥字符串中。哎呀

Bitbucket管道,在NodeJS脚本中使用ENV VARS部署到S3 Deploy

现在我有一个bitbucket管道,只需一步就可以正常工作: ( 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容器中的密钥,然后使用bash脚本和AWS-CLI将其部署到ELB,因此我实际上并没有尝试公开env变量,但是eb deploy肯定会这样做并且它可以正常工作。

当尝试使用image: node:latest和步骤运行管道时

- npm i
- npm run build ( Babel transpile )
- npm run deploy ( node script to send to S3 )

最后一步我需要节点脚本才能访问我已添加到bitbucket repo管道配置的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------')

然后bitbucket管道为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------

有什么想法吗?

回答如下:

好吧,我的问题是我复制了来自AWS的变量和尾随空格...这是一个字符,但肯定不在预期的密钥或密钥字符串中。哎呀

发布评论

评论列表 (0)

  1. 暂无评论