如何在 Jenkins 主动选择反应参数中的 groovy 脚本中切换 aws 配置文件

How to switch aws profile within a groovy script in Jenkins active choice reactive parameter

我正在尝试在 Jenkins 主动选择反应参数 [=23= 中切换到 aws prod 配置文件(在 ~/.aws/credentials 中定义为 jprod) ] 脚本。

但似乎没有任何效果。到目前为止,我已经尝试设置 AWS_PROFILE 变量并使用 System.setProperty

定义系统 属性

有趣的是,带有 --profile=jprod 的 aws cli 命令似乎有效。有没有办法用 kops 做类似的事情?或者关于如何在 groovy 脚本中切换配置文件的任何其他建议。

//System.setProperty("AWS_PROFILE", "jprod")
System.properties.'AWS_PROFILE' = 'jprod'

//AWS_PROFILE='jprod'
//def AWS_PROFILE='jstage'

def command ='kops get clusters --state=s3://k8s-bucket-state-prod'

def proc=command.execute()
proc.waitFor()       

def output = proc.in.text
def exitcode= proc.exitValue()
def error = proc.err.text

if (error) {
    println "Std Err: ${error}"
    println "Process exit code: ${exitcode}"
    return exitcode
}
return output.tokenize()

找到答案:只需修改命令即可使用 env:

def command ='env AWS_PROFILE=jprod kops get clusters --state=s3://k8s-bucket-state-prod'