2017-08-26 1 views
0

Ich hatte zuvor einen Jenkins-Build-Provider mit CodePipeline-Konsole erstellt. Während der Erstellung wird nach einer Jenkins-Server-URL gefragt.Wie aktualisiert man einen zuvor erstellten AWS CodePipeline Build Provider?

Jetzt muss ich meine Jenkins-Server-URL ändern, aber wenn ich versuche zu bearbeiten, gibt es keine Möglichkeit, den Build-Provider zu ändern. Siehe Snapshot unten:

enter image description here

Die einzige Lösung, die ich sehe, ist eine neue hinzuzufügen.

Ich habe versucht, die Pipeline mit aws-cli zu bekommen,

aws codepipeline get-pipeline --name <pipeline-name> 

Aber die JSON-Antwort hat nur einen Verweis auf an den Buildanbieter:

 ... 
     }, 
     { 
      "name": "Build", 
      "actions": [ 
       { 
        "inputArtifacts": [ 
         { 
          "name": "APIServer" 
         } 
        ], 
        "name": "Build", 
        "actionTypeId": { 
         "category": "Build", 
         "owner": "Custom", 
         "version": "1", 
         "provider": "jenkins-api-server" 
        }, 
        "outputArtifacts": [ 
         { 
          "name": "APIServerTarball" 
         } 
        ], 
        "configuration": { 
         "ProjectName": "api-server-build" 
        }, 
        "runOrder": 1 
       } 
      ] 
     }, 
     { 

Ich konnte nicht finden anderer Befehl, um den Build-Provider entweder zu verwalten. Also meine Frage ist wo und wie sollte ich die bestehende Build-Provider-Konfiguration in AWS CodePipeline aktualisieren?

Antwort

1

Die Jenkins-Aktion wird in Ihrem Konto als custom action definiert. Wenn Sie die Aktionskonfiguration aktualisieren möchten, können Sie mit der create custom action type API eine neue Version definieren. Ihre Änderungen werden eine neue "Version" des Aktionstyps sein, daher aktualisieren Sie die actionTypeId in Ihrer Pipeline so, dass sie auf Ihre neue Version verweist. Wenn Sie fertig sind, können Sie auch delete the old version verhindern, damit es in der Aktionsliste erscheint.

Wenn sich die Jenkins-URL ändert, besteht eine Lösung darin, einen DNS-Eintrag (z. B. über Route53) einzurichten, der auf Ihre Jenkins-Instanz verweist und den DNS-Hostnamen in Ihrer Aktionskonfiguration verwendet. Auf diese Weise können Sie den DNS-Eintrag in Zukunft neu zuordnen, ohne Ihre Pipeline zu aktualisieren.

+0

Danke Tim. Ich löschte die benutzerdefinierten Aktionen aus dem CLI mit "aws codepipeline delete-custom-action-type" und später erstellen eine neue mit "aws codepipeline create-custom-action-type". Bei der URL-Änderung musste ich von http zu https wechseln. DNS war also keine Option. Vielen Dank für Ihre Antwort. –

Verwandte Themen