My CloudWatch Event rule doesn't trigger my CodePipeline pipeline












0














I'm having some issues with AWS CloudWatch Events.



I'm creating a CodePipeline CI pipeline which have a CodeCommit repository as the Source, a CodeBuild project as the Build/Test phase (then, it deploys to Lambda, but the problem isn't there).



We have multiple projects and we are going to push multiple other projects. So, I created a script that manages the AWS CI stuff (i.e. creating a pipeline, a CodeBuild project, ... AND a CloudWatch Events rule, linked to the pipeline).



The first time I push my code, it works. But then, the process stop getting triggered by the push on CodeCommit.



I found a solution (but NOT the one I want) : I just have to modify the pipeline, modify the stage (Source), not touching anything, and saving the null modification : and it works (before saving, it ask the authorization to create a CloudWatch Events rule associated with this pipeline).



Does somebody encountered this issue ? What did you do to bypass it ?
I really want to make a 100% automated CI, I don't want to go to the AWS Console each time my team create a new repository or push a new branch on an existing repository.



EDIT :



Here is the JSON of my CloudWatch Events rule :



{
"Name": "company-ci_codepipeline_project-stage",
"EventPattern": "cf. second JSON",
"State": "ENABLED",
"Arn": "arn:aws:events:region:xxx:rule/company-ci_codepipeline_project-stage",
"Description": "CloudWatch Events rule to automatically trigger the needed pipeline from every push to project repository, on the stage branch on CodeCommit."
}


And here is the EventPattern JSON :



{
"source": [
"aws.codecommit"
],
"detail-type": [
"CodeCommit repository state change"
],
"resources": [
"arn:aws:codecommit:region:xxx:project"
],
"detail": {
"event": [
"referenceCreated",
"referenceUpdated"
],
"referenceType": [
"branch"
],
"referenceName": [
"stage"
]
}
}









share|improve this question
























  • What is your CloudWatch event rule? Do you see the CloudWatch metrics for the rule show the rule being triggered when you push? I'm trying to figure out if the problem is with the rule or the pipeline.
    – TimB
    Nov 20 '18 at 17:44










  • @TimB, my CloudWatch Events rule has a template with a CodeCommit source, and details matching a branch named dev each time it is created or updated (with the good JSON format). I can't see any metrics for my rule !
    – Mehdi
    Nov 20 '18 at 17:54










  • Can you post the actual JSON of the rule?
    – TimB
    Nov 20 '18 at 18:45










  • @TimB, I updated my post with the needed JSON
    – Mehdi
    Nov 20 '18 at 18:55
















0














I'm having some issues with AWS CloudWatch Events.



I'm creating a CodePipeline CI pipeline which have a CodeCommit repository as the Source, a CodeBuild project as the Build/Test phase (then, it deploys to Lambda, but the problem isn't there).



We have multiple projects and we are going to push multiple other projects. So, I created a script that manages the AWS CI stuff (i.e. creating a pipeline, a CodeBuild project, ... AND a CloudWatch Events rule, linked to the pipeline).



The first time I push my code, it works. But then, the process stop getting triggered by the push on CodeCommit.



I found a solution (but NOT the one I want) : I just have to modify the pipeline, modify the stage (Source), not touching anything, and saving the null modification : and it works (before saving, it ask the authorization to create a CloudWatch Events rule associated with this pipeline).



Does somebody encountered this issue ? What did you do to bypass it ?
I really want to make a 100% automated CI, I don't want to go to the AWS Console each time my team create a new repository or push a new branch on an existing repository.



EDIT :



Here is the JSON of my CloudWatch Events rule :



{
"Name": "company-ci_codepipeline_project-stage",
"EventPattern": "cf. second JSON",
"State": "ENABLED",
"Arn": "arn:aws:events:region:xxx:rule/company-ci_codepipeline_project-stage",
"Description": "CloudWatch Events rule to automatically trigger the needed pipeline from every push to project repository, on the stage branch on CodeCommit."
}


And here is the EventPattern JSON :



{
"source": [
"aws.codecommit"
],
"detail-type": [
"CodeCommit repository state change"
],
"resources": [
"arn:aws:codecommit:region:xxx:project"
],
"detail": {
"event": [
"referenceCreated",
"referenceUpdated"
],
"referenceType": [
"branch"
],
"referenceName": [
"stage"
]
}
}









share|improve this question
























  • What is your CloudWatch event rule? Do you see the CloudWatch metrics for the rule show the rule being triggered when you push? I'm trying to figure out if the problem is with the rule or the pipeline.
    – TimB
    Nov 20 '18 at 17:44










  • @TimB, my CloudWatch Events rule has a template with a CodeCommit source, and details matching a branch named dev each time it is created or updated (with the good JSON format). I can't see any metrics for my rule !
    – Mehdi
    Nov 20 '18 at 17:54










  • Can you post the actual JSON of the rule?
    – TimB
    Nov 20 '18 at 18:45










  • @TimB, I updated my post with the needed JSON
    – Mehdi
    Nov 20 '18 at 18:55














0












0








0


0





I'm having some issues with AWS CloudWatch Events.



I'm creating a CodePipeline CI pipeline which have a CodeCommit repository as the Source, a CodeBuild project as the Build/Test phase (then, it deploys to Lambda, but the problem isn't there).



We have multiple projects and we are going to push multiple other projects. So, I created a script that manages the AWS CI stuff (i.e. creating a pipeline, a CodeBuild project, ... AND a CloudWatch Events rule, linked to the pipeline).



The first time I push my code, it works. But then, the process stop getting triggered by the push on CodeCommit.



I found a solution (but NOT the one I want) : I just have to modify the pipeline, modify the stage (Source), not touching anything, and saving the null modification : and it works (before saving, it ask the authorization to create a CloudWatch Events rule associated with this pipeline).



Does somebody encountered this issue ? What did you do to bypass it ?
I really want to make a 100% automated CI, I don't want to go to the AWS Console each time my team create a new repository or push a new branch on an existing repository.



EDIT :



Here is the JSON of my CloudWatch Events rule :



{
"Name": "company-ci_codepipeline_project-stage",
"EventPattern": "cf. second JSON",
"State": "ENABLED",
"Arn": "arn:aws:events:region:xxx:rule/company-ci_codepipeline_project-stage",
"Description": "CloudWatch Events rule to automatically trigger the needed pipeline from every push to project repository, on the stage branch on CodeCommit."
}


And here is the EventPattern JSON :



{
"source": [
"aws.codecommit"
],
"detail-type": [
"CodeCommit repository state change"
],
"resources": [
"arn:aws:codecommit:region:xxx:project"
],
"detail": {
"event": [
"referenceCreated",
"referenceUpdated"
],
"referenceType": [
"branch"
],
"referenceName": [
"stage"
]
}
}









share|improve this question















I'm having some issues with AWS CloudWatch Events.



I'm creating a CodePipeline CI pipeline which have a CodeCommit repository as the Source, a CodeBuild project as the Build/Test phase (then, it deploys to Lambda, but the problem isn't there).



We have multiple projects and we are going to push multiple other projects. So, I created a script that manages the AWS CI stuff (i.e. creating a pipeline, a CodeBuild project, ... AND a CloudWatch Events rule, linked to the pipeline).



The first time I push my code, it works. But then, the process stop getting triggered by the push on CodeCommit.



I found a solution (but NOT the one I want) : I just have to modify the pipeline, modify the stage (Source), not touching anything, and saving the null modification : and it works (before saving, it ask the authorization to create a CloudWatch Events rule associated with this pipeline).



Does somebody encountered this issue ? What did you do to bypass it ?
I really want to make a 100% automated CI, I don't want to go to the AWS Console each time my team create a new repository or push a new branch on an existing repository.



EDIT :



Here is the JSON of my CloudWatch Events rule :



{
"Name": "company-ci_codepipeline_project-stage",
"EventPattern": "cf. second JSON",
"State": "ENABLED",
"Arn": "arn:aws:events:region:xxx:rule/company-ci_codepipeline_project-stage",
"Description": "CloudWatch Events rule to automatically trigger the needed pipeline from every push to project repository, on the stage branch on CodeCommit."
}


And here is the EventPattern JSON :



{
"source": [
"aws.codecommit"
],
"detail-type": [
"CodeCommit repository state change"
],
"resources": [
"arn:aws:codecommit:region:xxx:project"
],
"detail": {
"event": [
"referenceCreated",
"referenceUpdated"
],
"referenceType": [
"branch"
],
"referenceName": [
"stage"
]
}
}






amazon-web-services continuous-integration amazon-cloudwatch aws-codepipeline






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 20 '18 at 18:55

























asked Nov 19 '18 at 16:58









Mehdi

144




144












  • What is your CloudWatch event rule? Do you see the CloudWatch metrics for the rule show the rule being triggered when you push? I'm trying to figure out if the problem is with the rule or the pipeline.
    – TimB
    Nov 20 '18 at 17:44










  • @TimB, my CloudWatch Events rule has a template with a CodeCommit source, and details matching a branch named dev each time it is created or updated (with the good JSON format). I can't see any metrics for my rule !
    – Mehdi
    Nov 20 '18 at 17:54










  • Can you post the actual JSON of the rule?
    – TimB
    Nov 20 '18 at 18:45










  • @TimB, I updated my post with the needed JSON
    – Mehdi
    Nov 20 '18 at 18:55


















  • What is your CloudWatch event rule? Do you see the CloudWatch metrics for the rule show the rule being triggered when you push? I'm trying to figure out if the problem is with the rule or the pipeline.
    – TimB
    Nov 20 '18 at 17:44










  • @TimB, my CloudWatch Events rule has a template with a CodeCommit source, and details matching a branch named dev each time it is created or updated (with the good JSON format). I can't see any metrics for my rule !
    – Mehdi
    Nov 20 '18 at 17:54










  • Can you post the actual JSON of the rule?
    – TimB
    Nov 20 '18 at 18:45










  • @TimB, I updated my post with the needed JSON
    – Mehdi
    Nov 20 '18 at 18:55
















What is your CloudWatch event rule? Do you see the CloudWatch metrics for the rule show the rule being triggered when you push? I'm trying to figure out if the problem is with the rule or the pipeline.
– TimB
Nov 20 '18 at 17:44




What is your CloudWatch event rule? Do you see the CloudWatch metrics for the rule show the rule being triggered when you push? I'm trying to figure out if the problem is with the rule or the pipeline.
– TimB
Nov 20 '18 at 17:44












@TimB, my CloudWatch Events rule has a template with a CodeCommit source, and details matching a branch named dev each time it is created or updated (with the good JSON format). I can't see any metrics for my rule !
– Mehdi
Nov 20 '18 at 17:54




@TimB, my CloudWatch Events rule has a template with a CodeCommit source, and details matching a branch named dev each time it is created or updated (with the good JSON format). I can't see any metrics for my rule !
– Mehdi
Nov 20 '18 at 17:54












Can you post the actual JSON of the rule?
– TimB
Nov 20 '18 at 18:45




Can you post the actual JSON of the rule?
– TimB
Nov 20 '18 at 18:45












@TimB, I updated my post with the needed JSON
– Mehdi
Nov 20 '18 at 18:55




@TimB, I updated my post with the needed JSON
– Mehdi
Nov 20 '18 at 18:55












1 Answer
1






active

oldest

votes


















0














I've found this issue is typically related to the event rule/target/role configuration. If you don't have a target associated with your rule, you will NOT see the event invoked when reviewing metrics. Since your EventPattern looks correct, I'm thinking the target might be your issue.



You should have a configured target that looks something like:



{
"Rule": "company-ci_codepipeline_project-stage",
"Targets": [
{
"RoleArn": "arn:aws:iam::xxx:role/cwe-codepipeline",
"Id": "ProjectPipelineTarget",
"Arn": "arn:aws:codepipeline:region:xxx:your-pipeline"
}
]
}


If that seems all good, I'd next check that the role associated with the target is granting the correct permissions. My role looks something like:



{
"Role": {
"Description": "Allows CloudWatch Events to invoke targets and perform actions in built-in targets on your behalf.",
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "events.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
},
"MaxSessionDuration": 3600,
"RoleId": "xxxx",
"CreateDate": "2018-08-06T20:56:19Z",
"RoleName": "cwe-codepipeline",
"Path": "/",
"Arn": "arn:aws:iam::xxx:role/cwe-codepipeline"
}
}


And it has an inline policy of:



{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codepipeline:StartPipelineExecution"
],
"Resource": [
"arn:aws:codepipeline:*:xxx:*"
]
}
]
}


For reference, check out this documentation






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53379391%2fmy-cloudwatch-event-rule-doesnt-trigger-my-codepipeline-pipeline%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    I've found this issue is typically related to the event rule/target/role configuration. If you don't have a target associated with your rule, you will NOT see the event invoked when reviewing metrics. Since your EventPattern looks correct, I'm thinking the target might be your issue.



    You should have a configured target that looks something like:



    {
    "Rule": "company-ci_codepipeline_project-stage",
    "Targets": [
    {
    "RoleArn": "arn:aws:iam::xxx:role/cwe-codepipeline",
    "Id": "ProjectPipelineTarget",
    "Arn": "arn:aws:codepipeline:region:xxx:your-pipeline"
    }
    ]
    }


    If that seems all good, I'd next check that the role associated with the target is granting the correct permissions. My role looks something like:



    {
    "Role": {
    "Description": "Allows CloudWatch Events to invoke targets and perform actions in built-in targets on your behalf.",
    "AssumeRolePolicyDocument": {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Action": "sts:AssumeRole",
    "Principal": {
    "Service": "events.amazonaws.com"
    },
    "Effect": "Allow",
    "Sid": ""
    }
    ]
    },
    "MaxSessionDuration": 3600,
    "RoleId": "xxxx",
    "CreateDate": "2018-08-06T20:56:19Z",
    "RoleName": "cwe-codepipeline",
    "Path": "/",
    "Arn": "arn:aws:iam::xxx:role/cwe-codepipeline"
    }
    }


    And it has an inline policy of:



    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": [
    "codepipeline:StartPipelineExecution"
    ],
    "Resource": [
    "arn:aws:codepipeline:*:xxx:*"
    ]
    }
    ]
    }


    For reference, check out this documentation






    share|improve this answer




























      0














      I've found this issue is typically related to the event rule/target/role configuration. If you don't have a target associated with your rule, you will NOT see the event invoked when reviewing metrics. Since your EventPattern looks correct, I'm thinking the target might be your issue.



      You should have a configured target that looks something like:



      {
      "Rule": "company-ci_codepipeline_project-stage",
      "Targets": [
      {
      "RoleArn": "arn:aws:iam::xxx:role/cwe-codepipeline",
      "Id": "ProjectPipelineTarget",
      "Arn": "arn:aws:codepipeline:region:xxx:your-pipeline"
      }
      ]
      }


      If that seems all good, I'd next check that the role associated with the target is granting the correct permissions. My role looks something like:



      {
      "Role": {
      "Description": "Allows CloudWatch Events to invoke targets and perform actions in built-in targets on your behalf.",
      "AssumeRolePolicyDocument": {
      "Version": "2012-10-17",
      "Statement": [
      {
      "Action": "sts:AssumeRole",
      "Principal": {
      "Service": "events.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
      }
      ]
      },
      "MaxSessionDuration": 3600,
      "RoleId": "xxxx",
      "CreateDate": "2018-08-06T20:56:19Z",
      "RoleName": "cwe-codepipeline",
      "Path": "/",
      "Arn": "arn:aws:iam::xxx:role/cwe-codepipeline"
      }
      }


      And it has an inline policy of:



      {
      "Version": "2012-10-17",
      "Statement": [
      {
      "Effect": "Allow",
      "Action": [
      "codepipeline:StartPipelineExecution"
      ],
      "Resource": [
      "arn:aws:codepipeline:*:xxx:*"
      ]
      }
      ]
      }


      For reference, check out this documentation






      share|improve this answer


























        0












        0








        0






        I've found this issue is typically related to the event rule/target/role configuration. If you don't have a target associated with your rule, you will NOT see the event invoked when reviewing metrics. Since your EventPattern looks correct, I'm thinking the target might be your issue.



        You should have a configured target that looks something like:



        {
        "Rule": "company-ci_codepipeline_project-stage",
        "Targets": [
        {
        "RoleArn": "arn:aws:iam::xxx:role/cwe-codepipeline",
        "Id": "ProjectPipelineTarget",
        "Arn": "arn:aws:codepipeline:region:xxx:your-pipeline"
        }
        ]
        }


        If that seems all good, I'd next check that the role associated with the target is granting the correct permissions. My role looks something like:



        {
        "Role": {
        "Description": "Allows CloudWatch Events to invoke targets and perform actions in built-in targets on your behalf.",
        "AssumeRolePolicyDocument": {
        "Version": "2012-10-17",
        "Statement": [
        {
        "Action": "sts:AssumeRole",
        "Principal": {
        "Service": "events.amazonaws.com"
        },
        "Effect": "Allow",
        "Sid": ""
        }
        ]
        },
        "MaxSessionDuration": 3600,
        "RoleId": "xxxx",
        "CreateDate": "2018-08-06T20:56:19Z",
        "RoleName": "cwe-codepipeline",
        "Path": "/",
        "Arn": "arn:aws:iam::xxx:role/cwe-codepipeline"
        }
        }


        And it has an inline policy of:



        {
        "Version": "2012-10-17",
        "Statement": [
        {
        "Effect": "Allow",
        "Action": [
        "codepipeline:StartPipelineExecution"
        ],
        "Resource": [
        "arn:aws:codepipeline:*:xxx:*"
        ]
        }
        ]
        }


        For reference, check out this documentation






        share|improve this answer














        I've found this issue is typically related to the event rule/target/role configuration. If you don't have a target associated with your rule, you will NOT see the event invoked when reviewing metrics. Since your EventPattern looks correct, I'm thinking the target might be your issue.



        You should have a configured target that looks something like:



        {
        "Rule": "company-ci_codepipeline_project-stage",
        "Targets": [
        {
        "RoleArn": "arn:aws:iam::xxx:role/cwe-codepipeline",
        "Id": "ProjectPipelineTarget",
        "Arn": "arn:aws:codepipeline:region:xxx:your-pipeline"
        }
        ]
        }


        If that seems all good, I'd next check that the role associated with the target is granting the correct permissions. My role looks something like:



        {
        "Role": {
        "Description": "Allows CloudWatch Events to invoke targets and perform actions in built-in targets on your behalf.",
        "AssumeRolePolicyDocument": {
        "Version": "2012-10-17",
        "Statement": [
        {
        "Action": "sts:AssumeRole",
        "Principal": {
        "Service": "events.amazonaws.com"
        },
        "Effect": "Allow",
        "Sid": ""
        }
        ]
        },
        "MaxSessionDuration": 3600,
        "RoleId": "xxxx",
        "CreateDate": "2018-08-06T20:56:19Z",
        "RoleName": "cwe-codepipeline",
        "Path": "/",
        "Arn": "arn:aws:iam::xxx:role/cwe-codepipeline"
        }
        }


        And it has an inline policy of:



        {
        "Version": "2012-10-17",
        "Statement": [
        {
        "Effect": "Allow",
        "Action": [
        "codepipeline:StartPipelineExecution"
        ],
        "Resource": [
        "arn:aws:codepipeline:*:xxx:*"
        ]
        }
        ]
        }


        For reference, check out this documentation







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Dec 19 '18 at 4:25









        Dang Nguyen

        599221




        599221










        answered Dec 19 '18 at 2:06









        ljp

        11




        11






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53379391%2fmy-cloudwatch-event-rule-doesnt-trigger-my-codepipeline-pipeline%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            How to fix TextFormField cause rebuild widget in Flutter

            in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith