使用Terraform中的环境变量为shared_credentials_file赋值

时间:2017-10-23 11:19:55

标签: amazon-web-services environment-variables terraform

我想使用%USERPROFILE%\\.aws\\credentials为terraform中的shared_credentials_file赋值,但是我收到了错误

No valid credential sources found for AWS Provider

如果我像“C:\ Users \ admin \ .aws \ credentials”那样对路径进行硬编码,那么它可以正常工作。

如何使其与环境变量一起使用?

1 个答案:

答案 0 :(得分:1)

您可以使用一些不同的选项来制作动态字段here

如果您想使用环境变量,则必须在开头添加export TF_VAR_shared_credentials_file="/Users/admin/.custom_aws/credentials" 时将其导出,然后您可以在代码中没有variable "shared_credentials_file" { } provider "aws" { region = "us-west-2" shared_credentials_file = "${var.shared_credentials_file}" } 的情况下使用它。

plan

然后在你的terraform .tf文件中:

apply

或者,您可以在调用terraform plan -var 'shared_credentials_file=/Users/admin/.custom_aws/credentials' import numpy as np import matplotlib.pyplot as plt from scipy.optimize import curve_fit xdata2 = np.linspace(1,20,20) xdata2 ydata2=([16,62,138, 242, 366, 504, 652, 808, 971,1138, 1309, 1483, 1657, 1831, 2005, 2179, 2353, 2527, 2701, 2875]) ydata2 def func2(t,m,k): g=32.174 return m*g*t/k-(m*m/(k*k))*(np.exp(-k*t/m)-1) plt.plot(xdata2, ydata2, 'b-', label='xdata2') #plt.show() #xdata2 #ydata2 popt2, pcov2 = curve_fit(func2, xdata2, ydata2) plt.plot(xdata2, func2(xdata2, *popt2), 'r-', label='fit') #plt.show() #popt3, pcov3 = curve_fit(func2, xdata2, ydata2, bounds=(0, [3., 2.])) #plt.plot(xdata2, func2(xdata2, *popt3), 'g--', label='fit-with-bounds') plt.show() pcov2 popt2 #popt3 等terraform命令时将环境变量作为terraform变量传入。

    ...
    AND attributes LIKE '%FRI%'
    AND network != 'null'
    ...

此外,在AWS provider的文档中,在“共享凭据”部分中指出:

  

您可以使用AWS凭据文件指定凭据。该   Linux和OS X上的默认位置是$ HOME / .aws / credentials,或者   Windows用户的“%USERPROFILE%.aws \ credentials”。如果我们失败了   在内联或环境中检测凭证,Terraform将检查   这个位置。

因此,如果您确保每个人都将自己的.aws凭据保存在默认位置,则无需担心自己添加此插值。