2017-10-23 1 views
0

에서 환경 변수를 사용하여 shared_credentials_file합니다하지만 난 C "와 같은 경로를 하드 코딩하면 나는 오류를할당 값은 내가 terraform에 shared_credentials_file에 값을 할당 할 <code>%USERPROFILE%\.aws\credentials</code>를 사용하려면 Terraform

No valid credential sources found for AWS Provider 

를 얻을 : \ 사용자 \ 관리자 \를 .aws \ credentials "이것은 잘 동작합니다.

환경 변수로 어떻게 작동시킬 수 있습니까?

+0

신원 정보 파일이 기본 경로로 설정되어 있습니다. aws cli와 같이 'aws s3 ls'와 같은 테스트를 수행합니다. 출력에 버켓이 있으면 aws 자격 증명이 작동 함을 증명하고, 그렇지 않으면이 문제를 해결합니다. firsts – BMW

+0

aws s3 ls 명령을 사용하여 버킷 목록을 가져올 수 있습니다. 나는 users/admin에게 예제를 주었다. 내 컴퓨터의 user/myname/.aws/credentials은 다른 팀 구성원의 컴퓨터와 비슷합니다. 내가 원하는 것은 모든 환경 변수를 변경없이 사용할 수 있도록 환경 변수 % USERPROFILE %를 테라 폼에서 사용하는 것입니다. – Tulika

답변

1

필드를 동적으로 윤곽을 그릴 수있는 다른 옵션이 있습니다. here.

환경 변수를 사용하려면 시작 부분에 TF_VAR이 앞에 붙어서 내 보낸 다음 코드에 TF_VAR없이 사용할 수 있습니다.

export TF_VAR_shared_credentials_file="/Users/admin/.custom_aws/credentials" 

다음 terraform의 .tf 파일

:

variable "shared_credentials_file" { } 

provider "aws" { 
    region     = "us-west-2" 
    shared_credentials_file = "${var.shared_credentials_file}" 
} 

또는 planapply 같은 terraform 명령을 호출 할 때 terraform 변수로 환경 변수에 전달할 수 있습니다. AWS provider에 대한 문서에서 또한

terraform plan -var 'shared_credentials_file=/Users/admin/.custom_aws/credentials' 

, 공유 자격 증명 섹션은 상태 :

당신은 AWS 자격 증명 자격 증명을 지정하는 파일을 사용할 수 있습니다. 기본 위치는 Windows 사용자의 경우 Linux 및 OS X에서는 $ HOME/.aws/credentials이거나 "% USERPROFILE % .aws \ credentials"입니다. 자격 증명을 인라인 또는 환경에서 검색하지 못하면 Terraform은 이 위치를 확인합니다.

모든 사람이 기본 위치에 .aws 자격 증명을 유지하도록하려면이 보간을 직접 추가 할 필요가 없습니다.

+0

TF_VAR의 값을 하드 코드하고 싶지 않습니다. TF_VAR을 사용하는 팀 구성원마다 다르며 각 env에도 다릅니다. 변수로 전달할 수 있지만 관심있는 것은 모든 환경 변수를 변경하지 않고 사용할 수 있도록 환경 변수 % USERPROFILE %를 terraform 스크립트에서 사용하는 것입니다. 이것은 terraform에서 가능합니까? – Tulika