Back

Explore Courses Blog Tutorials Interview Questions
0 votes
4 views
in AWS by (19.1k points)

I am using AWS CodeBuild along with Terraform for automated deployment of a Lambda based service. I have a very simple buildscript.yml that accomplishes the following:

Get dependencies

Run Tests

Get AWS credentials and save to file (detailed below)

Source the creds file

Run Terraform

The step "source the creds file" is where I am having my difficulty. I have a simply bash one-liner that grabs the AWS container creds off of curl 169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI and then saves them to a file in the following format:

export AWS_ACCESS_KEY_ID=SOMEACCESSKEY

export AWS_SECRET_ACCESS_KEY=MYSECRETKEY

export AWS_SESSION_TOKEN=MYSESSIONTOKEN

Of course, the obvious step is to simply source this file so that these variables can be added to my environment for Terraform to use. However, when I do source /path/to/creds_file.txt, CodeBuild returns:

[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

I have tried to install source through apt but then I get an error saying that source cannot be found (yes, I've run apt update etc.). I am using a standard Ubuntu image with the Python 2.7 environment for CodeBuild. What can I do to either get Terraform working credentials for source this credentials file in Codebuild?

1 Answer

0 votes
by (44.4k points)

Try using . instead of source. source is not POSIX compliant. ss64.com/bash/source.html

Related questions

Want to get 50% Hike on your Salary?

Learn how we helped 50,000+ professionals like you !

Browse Categories

...