2 回答
TA贡献1818条经验 获得超11个赞
将此变量TERRATEST_IAM_ROLE作为文档中提到的os环境变量传递的唯一方法您也可以将其定义为您的后端文件,但如果您有读取值的断言测试用例,则不会被拾取,因为它使用aws cli
所以我做了这件事,它奏效了。
import (
"os"
)
os.Setenv("TERRATEST_IAM_ROLE", "arn:aws:iam::xxxx/xxxx")
TA贡献1796条经验 获得超4个赞
**
这段代码是不可测试的,所以你不能测试它。
** https://github.com/gruntwork-io/terratest/blob/f3916f7a5f58e3fedf603388d3e3e8052d6a47a3/modules/aws/auth.go#L18
我希望他们可以像这样重构它:
var AuthAssumeRoleEnvVar string
func SetAuthAssumeRoleEnvVar(role string){
AuthAssumeRoleEnvVar = role
}
func NewAuthenticatedSession(region string) (*session.Session, error) {
if assumeRoleArn, ok := os.LookupEnv(AuthAssumeRoleEnvVar); ok {
return NewAuthenticatedSessionFromRole(region, assumeRoleArn)
} else {
return NewAuthenticatedSessionFromDefaultCredentials(region)
}
}
所以我们可以这样称呼它:
aws.SetAuthAssumeRoleEnvVar("testrole")
aws.NewAuthenticatedSession(region)
- 2 回答
- 0 关注
- 103 浏览
添加回答
举报