目标是从Jenkins声明性管道内部动态加载参数值。其中一个参数会从函数中预加载其值。调用该函数时,它会生成一个KMS键数组,但无法填充参数值字段。注意:我可以通过脚本化管道来完成此工作,但希望通过声明性管道来完成。
这是代码
def my_kms_keys=""
def LocalKmsKeys(){
kms_keys = sh(script: """aws kms list-aliases --region eu-west-1 |jq -r '.Aliases[] |select (.AliasArn |contains(":alias/aws/") | not) | "\\(.AliasArn | split("/")[1]) --- \\(.TargetKeyId)"'""", returnStdout:true).trim()
return kms_keys.split("\n");
}
pipeline {
agent { label 'slave' }
stages {
stage('Load KMS Keys'){
steps {
script {
my_kms_keys = LocalKmsKeys()
println "Debug my_kms_keys : " + my_kms_keys
}
}
}
}
parameters {
string(name: 'Product', description: 'Product name', defaultValue: "product-1")
choice(name: 'KmsKeys', description: 'Select Kms key for S3 bucket', choices: my_kms_keys)
}
}
任何有关如何解决此问题的想法将不胜感激。