如何更新以前创建的AWS CodePipeline Build Provider?

问题描述:

我以前曾创造了一个詹金斯使用CodePipeline控制台建立提供商。在创建过程中,它要求提供一个Jenkins服务器URL。如何更新以前创建的AWS CodePipeline Build Provider?

现在,我需要改变我的詹金斯服务器的URL,但是当我尝试编辑,没有任何选项更改构建提供商。请参见下面的快照:

enter image description here

我看到的唯一的解决办法是增加一个新的。

我尝试使用AWS-CLI来获取管道,

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

但JSON响应只是必须在生成提供一个参考:

 ... 
     }, 
     { 
      "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 
       } 
      ] 
     }, 
     { 

我找不到任何其他命令来管理构建提供者。所以我的问题是在哪里以及如何更新AWS CodePipeline中的现有构建提供程序配置?

詹金斯的行动实际上是定义为您的帐户custom action。如果您想更新操作配置可以使用create custom action type API定义一个新的版本。您的更改将成为操作类型的新“版本”,因此您随后更新管道中的actionTypeId以指向新版本。

一旦你完成了,你也可以delete the old version阻止它出现在动作列表中。

关于Jenkins URL的更改,一个解决方案是设置指向您的Jenkins实例的DNS记录(例如通过Route53),并在您的操作配置中使用DNS主机名。这样,您可以在未更新管道的情况下重新映射DNS记录。

+0

感谢蒂姆。我结束了使用“AWS codepipeline删除定制动型”,后来创建一个使用“AWS codepipeline创建定制动作型”的一个新的删除从CLI的自定义操作。在URL更改上,我必须从http更改为https。所以DNS不是一个选项。尽管非常感谢您的回复。 –