当前位置: 首页 > 知识库问答 >
问题:

位桶管道,在节点JS脚本中使用ENV VARS部署到S3部署

赵宏达
2023-03-14

现在我有一个 bitbucket 管道,它可以通过这样的单个步骤很好地工作:
(选项: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 vars,但eb部署肯定会并且它有效。

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

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

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

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

有什么想法吗?

共有1个答案

孟华晖
2023-03-14

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

 类似资料:
  • 我们已经建立了管道脚本,工作得很好。最近,我们决定使用bitbucket管道自动部署到elastic beanstalk,并遵循使用命令进行部署的教程。显然,此命令在管道上失败。配置文件似乎是合法的,因为它在本地运行。它还可以在管道文件中指定的同一图像的容器中运行,也可以从本地使用docker exec在同一图像的容器中运行命令。下面是管道文件和我们使用命令得到的错误。我显然漏掉了什么。如有任何帮

  • 使用自动化脚本,一个命令来上一节中的所有操作。 自动化创建和更新 gh-pages 所以,我们采用一个 npm 包,来帮助我们完成上面的操作 cd my-note/ npm i gh-pages 然后创建 my-note/scripts/deploy-gh-pages.js 里面的内容是: 'use strict'; var ghpages = require('gh-pages'); ma

  • 我试图通过jenkins管道将azure web应用程序部署到azure form git 代码如下所示 这怎么可能?有什么方法可以将git repo url作为参数提供给azure插件吗? 谢了!

  • kubernetes Node 节点包含如下组件: flanneld docker kubelet kube-proxy 使用的变量 本文档用到的变量定义如下: $ # 替换为 kubernetes master 集群任一机器 IP $ export MASTER_IP=10.64.3.7 $ export KUBE_APISERVER="https://${MASTER_IP}:6443" $

  • kubernetes master 节点包含的组件: kube-apiserver kube-scheduler kube-controller-manager 目前这三个组件需要部署在同一台机器上: kube-scheduler、kube-controller-manager 和 kube-apiserver 三者的功能紧密相关; 同时只能有一个 kube-scheduler、kube-cont

  • Kubernetes node节点包含如下组件: Flanneld:参考我之前写的文章Kubernetes基于Flannel的网络配置,之前没有配置TLS,现在需要在service配置文件中增加TLS配置,安装过程请参考上一节安装flannel网络插件。 Docker1.12.5:docker的安装很简单,这里也不说了,但是需要注意docker的配置。 kubelet:直接用二进制文件安装 kub