我想使用%USERPROFILE%\\.aws\\credentials
为terraform中的shared_credentials_file赋值,但是我收到了错误
No valid credential sources found for AWS Provider
如果我像“C:\ Users \ admin \ .aws \ credentials”那样对路径进行硬编码,那么它可以正常工作。
如何使其与环境变量一起使用?
答案 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凭据保存在默认位置,则无需担心自己添加此插值。