我正在使用AWS CodeBuild和Terraform进行基于Lambda的服务的自动化部署。我有一个非常简单的buildscript.yml
,它完成以下操作:
- 获取依赖项
- 运行测试
- 获取AWS凭据并保存到文件中(如下所述)
- 引入凭据文件
- 运行Terraform
“引入凭据文件”这一步是我遇到困难的地方。我有一个简单的bash命令,可以从curl 169.254.170.2$ AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
获取AWS容器凭据,然后将它们以以下格式保存到文件中:
export AWS_ACCESS_KEY_ID=SOMEACCESSKEY
export AWS_SECRET_ACCESS_KEY=MYSECRETKEY
export AWS_SESSION_TOKEN=MYSESSIONTOKEN
当然,显而易见的步骤是简单地source
此文件,以便这些变量可以添加到我的环境中供Terraform使用。然而,当我执行命令source /path/to/creds_file.txt
时,CodeBuild会返回:
[Container] 2017/06/28 18:28:26 Running command source /path/to/creds_file.txt
/codebuild/output/tmp/script.sh: 4: /codebuild/output/tmp/script.sh: source: not found
我尝试通过 apt
安装 source
,但是我收到一个错误,提示找不到 source
(是的,我运行了 apt update
等命令)。我正在使用标准的 Ubuntu 映像和 Python 2.7 环境进行 CodeBuild。我应该怎么做才能让 Terraform 能够在 Codebuild 中使用这个凭证文件?
谢谢!
.
代替source
吗?source
不是 POSIX 标准 https://ss64.com/bash/source.html - jeffreysource
是.
的常见别名,我一直以为是反过来的。 - jeffrey