AWS CodePipeline github webhook 未在提交时触发

Posted

技术标签:

【中文标题】AWS CodePipeline github webhook 未在提交时触发【英文标题】:AWS CodePipeline github webhook not triggering on commit 【发布时间】:2020-03-01 07:15:18 【问题描述】:

我设置了一个 AWS CodePipeline,它使用 github 作为源,CodeBuild 用于构建,并部署到 ElasticBeanstalk。

当一切都在控制台中设置好并且我是 github 帐户的管理员(我使用不同的帐户进行测试)时,我能够让它工作

我需要部署的实际代码属于我不是管理员的帐户,因此在this guide 之后,我收到了个人访问令牌并使用 CLI 更新了 CodePipeline。

一旦我使用 cli 更新了项目,提交代码时它不再被触发。

我不确定发生了什么变化,因为即使我使用控制台并将 webhook 直接设置为我正在测试的 github 帐户的管理员,它仍然无法正常工作。

这是我更新管道的 json:


    "pipeline": 
        "roleArn": "arn:aws:iam::xxxxxxx:role/service-role/AWSCodePipelineServiceRole-us-west-2-xxxxx-xxxx", 
        "stages": [
            
                "name": "Source", 
                "actions": [
                    
                        "inputArtifacts": [], 
                        "name": "Source", 
                        "actionTypeId": 
                            "category": "Source", 
                            "owner": "ThirdParty", 
                            "version": "1", 
                            "provider": "GitHub"
                        , 
                        "outputArtifacts": [
                            
                                "name": "SourceArtifact"
                            
                        ], 
                        "configuration": 
                            "Owner": "xxx", 
                            "Repo": "xxx", 
                            "PollForSourceChanges": "false", 
                            "Branch": "stage"
                        , 
                        "runOrder": 1
                    
                ]
            , 
            
                "name": "Build", 
                "actions": [
                    
                        "inputArtifacts": [
                            
                                "name": "SourceArtifact"
                            
                        ], 
                        "name": "Build", 
                        "actionTypeId": 
                            "category": "Build", 
                            "owner": "AWS", 
                            "version": "1", 
                            "provider": "CodeBuild"
                        , 
                        "outputArtifacts": [
                            
                                "name": "BuildArtifact"
                            
                        ], 
                        "configuration": 
                            "ProjectName": "xxx-stage-codebuild"
                        , 
                        "runOrder": 1
                    
                ]
            , 
            
                "name": "Deploy", 
                "actions": [
                    
                        "inputArtifacts": [
                            
                                "name": "BuildArtifact"
                            
                        ], 
                        "name": "Deploy", 
                        "actionTypeId": 
                            "category": "Deploy", 
                            "owner": "AWS", 
                            "version": "1", 
                            "provider": "ElasticBeanstalk"
                        , 
                        "outputArtifacts": [], 
                        "configuration": 
                            "ApplicationName": "xxx", 
                            "EnvironmentName": "xxx-stage"
                        , 
                        "runOrder": 1
                    
                ]
            
        ], 
        "artifactStore": 
            "type": "S3", 
            "location": "xxx-artifacts-stage"
        , 
        "name": "xxx-stage", 
        "version": 15
    

【问题讨论】:

【参考方案1】:

要修复更新的 GitHub 源的 webhook,您需要执行以下步骤:

    使用 [1] 中的步骤取消注册并删除与旧 GitHub 存储库关联的现有 webhook。

    使用 [2] 中的步骤重新创建 webhook。

参考:

[1] 删除 GitHub 源的 Webhook - https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-webhooks-delete.html

[2] 为 GitHub 源创建 Webhook - https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-webhooks-create.html

如果您遇到任何挑战,请告诉我。

【讨论】:

我正在遵循创建指南,但在调用 register-webhook-with-third-party 时出现“未找到”错误。知道是什么原因造成的吗?

以上是关于AWS CodePipeline github webhook 未在提交时触发的主要内容,如果未能解决你的问题,请参考以下文章

如果 repo 是组织存储库,AWS CodePipeline GitHub webhook 无法注册到 GitHub

什么是正确的 AWS CodePipeline 工作流程

AWS CodePipeline 无法访问组织的存储库

AWS CodeBuild + CodePipeline:“找不到匹配的工件路径”

由于权限错误,无法在 AWS CodePipeline 中完成部署阶段

将 git merge 集成到 master 作为 AWS Codepipeline 中的最后一步