我正在使用 AWS CodeBuild 和 Terraform 来自动部署基于 Lambda 的服务。我有一个非常简单buildscript.yml
的方法来完成以下工作:
- 获取依赖项
- 运行测试
- 获取 AWS 凭证并保存到文件(详情如下)
- 获取 creds 文件
- 运行 Terraform
“获取 creds 文件”这一步是我遇到困难的地方。我有一个简单的 bash one-liner,它可以抓取 AWS 容器的凭据curl 169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
,然后将它们保存到以下格式的文件中:
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
我试图通过安装source
,apt
但后来我收到一个错误,说source
找不到(是的,我已经运行了apt update
等)。我将标准 Ubuntu 映像与 Python 2.7 环境一起用于 CodeBuild。我该怎么做才能在 Codebuild 中获取 Terraform 工作凭据以获取此凭据文件的源代码。
谢谢!