如何动态地将credentialsId传递给Jenkins管道

use*_*337 6 groovy jenkins jenkins-plugins jenkins-pipeline

有没有办法使用环境变量在 withCredentials 块内的 Jenkins 管道中动态传递凭据 ID?

目前这有效:

withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: 'my-aws-credentials',
                        ACCESS_KEY: 'ACCESS_KEY', SECRET_KEY: 'SECRET_KEY']]) { }
Run Code Online (Sandbox Code Playgroud)

但这不会:

withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: '${AWS_CREDENTIAL_ID}',
                        ACCESS_KEY: 'ACCESS_KEY', SECRET_KEY: 'SECRET_KEY']]) { }
Run Code Online (Sandbox Code Playgroud)

我应该补充一点,构建在 docker 容器中运行,但其他环境变量工作正常,所以我希望这个也能工作。

use*_*337 3

事实上,我可以通过这样做来解决它 - >

withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: env.AWS_CREDENTIAL_ID,
                        ACCESS_KEY: 'ACCESS_KEY', SECRET_KEY: 'SECRET_KEY']]) { } 
Run Code Online (Sandbox Code Playgroud)