AWS CodeBuild插件无法使用Jenkins Pipeline找到代码构建项目

问题描述 投票:0回答:1

因此,我试图使用AWS CodeBuild插件在codebuild上运行我的Jenkins构建。做自由泳的工作时,我填写了细节,效果很好。

但是,当我在Jenkins管道上尝试它时,它找不到代码构建项目。

管道:

steps {
    withAWS(credentials: "AWS_ID", region: "$AWS_DEFAULT_REGION") {
        sh 'aws codebuild list-projects'
        awsCodeBuild credentialsId: "CodeBuild_AWS_ID",
            credentialsType: "jenkins", 
            projectName: 'newCodeBuildProject', 
            region: "us-west-2", 
            sourceControlType: "project", 
            sourceLocationOverride: "https://github.com/me/myrepo", 
            sourceTypeOverride: "GITHUB", 
            sourceVersion: "mybranch"
}

控制台输出:

12:38:50  Constructing AWS CredentialsSetting AWS region eu-west-2 
[Pipeline] {
[Pipeline] sh

12:38:51  + aws codebuild list-projects

12:38:53  {
12:38:53      "projects": [
12:38:53          "newCodeBuildProject"
12:38:53      ]
12:38:53  }
[Pipeline] awsCodeBuild
12:38:53  [AWS CodeBuild Plugin] Using given AWS access and secret key for authorization (provided from Jenkins credentials CodeBuild_AWS_ID)
12:38:54  [AWS CodeBuild Plugin] Project newCodeBuildProject does not exist.

并且它在控制台中引发了以下错误:

CodeBuildException
    at CodeBuildStep$CodeBuildExecution.run(CodeBuildStep.java:624)
    at CodeBuildStep$CodeBuildExecution.run(CodeBuildStep.java:578)
    at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
    at hudson.security.ACL.impersonate(ACL.java:290)
    at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Finished: FAILURE

[去年有一个类似的问题,但它已经解决。 https://github.com/awslabs/aws-codebuild-jenkins-plugin/issues/66

amazon-web-services jenkins jenkins-pipeline jenkins-plugins aws-codebuild
1个回答
0
投票

所以您正在使用withAWS做一个承担角色,但随后您指定的代码构建插件要使用jenkins身份凭证存储区中相同的凭据(您曾经执行过承担角色)。我们需要使用在承担角色成功时获得的信誉。

因此,我们将指导代码构建使用特定的键,而这些键由AWS提供为env.VARS

steps {
    withAWS(credentials: "AWS_ID", region: "$AWS_DEFAULT_REGION") {
        sh 'aws codebuild list-projects'
        awsCodeBuild credentialsType: 'keys',
            awsAccessKey: env.AWS_ACCESS_KEY_ID,
            awsSecretKey: env.AWS_SECRET_ACCESS_KEY, 
            projectName: 'newCodeBuildProject', 
            region: "us-west-2", 
            sourceControlType: "project", 
            sourceLocationOverride: "https://github.com/me/myrepo", 
            sourceTypeOverride: "GITHUB", 
            sourceVersion: "mybranch"
}               
© www.soinside.com 2019 - 2024. All rights reserved.