【问题标题】:Bitbucket pipelines, use ENV VARS in a NodeJS script to deploy to S3 DeployBitbucket 管道,在 NodeJS 脚本中使用 ENV VARS 部署到 S3 Deploy
【发布时间】:2018-06-03 12:35:12
【问题描述】:

现在我有一个 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 以进行提交,因此我实际上并没有尝试公开环境变量,但 eb deploy 肯定会这样做并且它有效。

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

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

最后一步我需要节点脚本来访问我添加到 bitbucket 存储库管道配置中的环境变量,而不是获得该变量的命名变量表示:

// 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------

有什么想法吗?

【问题讨论】:

    标签: node.js amazon-s3 environment-variables aws-sdk bitbucket-pipelines


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 2022-01-18
      • 2020-04-11
      • 2017-04-02
      • 1970-01-01
      相关资源
      最近更新 更多