You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins中调用AWSCodeDeployPublisher的getVersionFileName()方法?

在Jenkins Pipeline中获取AWS CodeDeploy上传的S3文件URI

要调用AWSCodeDeployPublisher插件的getVersionFileName()方法获取上传的ZIP文件名,进而拼接出S3 URI,核心是捕获插件执行后的返回对象,再调用对应方法。具体实现如下:

1. 捕获插件执行结果对象

在Pipeline中执行awsCodeDeployPublisher步骤时,将其赋值给一个变量,该变量即为插件返回的结果对象,包含插件提供的各类方法:

def codeDeployResult = awsCodeDeployPublisher(
    applicationName: '你的应用名称',
    deploymentGroupName: '你的部署组名称',
    region: 'AWS区域(如us-east-1)',
    // 保留你原有配置中的其他必要参数
)

2. 调用getVersionFileName()获取文件名

通过结果对象调用方法获取上传的临时ZIP文件名:

def versionZipName = codeDeployResult.getVersionFileName()

3. 拼接完整S3 URI

结合你的S3存储桶名称,拼接出完整的S3资源URI:

def s3BucketName = '你的S3存储桶名称'
def s3Uri = "s3://${s3BucketName}/${versionZipName}"
echo "上传的文件S3 URI: ${s3Uri}"

声明式Pipeline中的适配

如果使用声明式Pipeline,需要将上述逻辑包裹在script块中(声明式不支持直接调用对象方法),示例:

pipeline {
    agent any
    stages {
        stage('CodeDeploy部署') {
            steps {
                script {
                    def codeDeployResult = awsCodeDeployPublisher(
                        applicationName: 'your-app',
                        deploymentGroupName: 'your-deployment-group',
                        region: 'us-east-1'
                    )
                    def versionZipName = codeDeployResult.getVersionFileName()
                    def s3Uri = "s3://your-bucket/${versionZipName}"
                    echo "S3 URI: ${s3Uri}"
                    
                    // 可选:生成预签名URL(需确保Jenkins节点已配置AWS凭证)
                    def presignedUrl = sh(
                        script: "aws s3 presign ${s3Uri} --expires-in 3600",
                        returnStdout: true
                    ).trim()
                    echo "预签名URL: ${presignedUrl}"
                }
            }
        }
    }
}

注意事项

  • 确保使用的AWSCodeDeployPublisher插件版本支持返回结果对象,旧版本可能无此特性,需升级插件至最新稳定版。
  • 若插件配置中已指定存储桶,部分版本的插件可能提供getBucket()方法直接获取桶名,可替代手动定义桶名:
    def s3BucketName = codeDeployResult.getBucket()
    

内容的提问来源于stack exchange,提问作者Vlad Stratulat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 10:17:08