我是groovy的新手,非常感谢您的帮助。
在我的Jenkins中,我使用可扩展的choice参数通过AWS CLI命令填充列表。
当我在服务器中执行该命令时,它会为我提供预期的输出。但它不会在Jenkins中生成。
以下是代码片段。
def proc = "aws cloudformation --profile myconfig list-stacks --stack-status-filter CREATE_COMPLETE --stack-status-filter UPDATE_COMPLETE --region us-east-1".execute() | "grep "..-02-"".execute() | "grep \"StackName\"".execute() | "cut -d':' -f2".execute() | "tr ',' ' '".execute() | "tr '\"' ' '".execute() | "sed \"s/\$/,/g\"".execute() | "paste -sd ' '".execute() | "awk '{\$1=\$1;print}'".execute() | "sed -r '/^\\s*\$/d'".execute()
def Items = []
proc.in.eachLine {line ->
Items.add(line.split()[3])
}
return Items发布于 2020-09-23 20:02:24
我猜您想要获得CloudFormation堆栈名称的列表。
我使用来自Jenkins Active Choice plugin的主动选择参数,代码如下:
def aws_cmd = "aws cloudformation list-stacks \
--query StackSummaries[].StackName \
--stack-status-filter CREATE_COMPLETE \
--stack-status-filter UPDATE_COMPLETE \
--region us-east-1 \
--output text \
--profile myconfig"
def aws_cmd_output = aws_cmd.execute()
//aws_cmd_output.waitFor() // usually not required
def error = aws_cmd_output.err.text
def stacks = aws_cmd_output.text.tokenize()
if (error) {
return [error]
} else {
return stacks
}如果无法检索堆栈列表,该脚本将返回一个错误。
它也应该与可扩展选择参数一起工作。
注意!您应该允许对Jenkins上使用的IAM角色执行cloudformation:List*操作。
https://stackoverflow.com/questions/62933150
复制相似问题