首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS CLI查询Cloudformation以填充Jenkins Extensible choice参数

AWS CLI查询Cloudformation以填充Jenkins Extensible choice参数
EN

Stack Overflow用户
提问于 2020-07-16 18:55:23
回答 1查看 129关注 0票数 0

我是groovy的新手,非常感谢您的帮助。

在我的Jenkins中,我使用可扩展的choice参数通过AWS CLI命令填充列表。

当我在服务器中执行该命令时,它会为我提供预期的输出。但它不会在Jenkins中生成。

以下是代码片段。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2020-09-23 20:02:24

我猜您想要获得CloudFormation堆栈名称的列表。

我使用来自Jenkins Active Choice plugin主动选择参数,代码如下:

代码语言:javascript
复制
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*操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62933150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档