An error occurred (InvalidActionDeclarationException) when calling the UpdatePipeline operation: Input Artifact Bundle MyAppBuild in action ExternalDeploy is not declared as Output Artifact Bundle in

0

Hi all, I am trying to create a pipeline in CodePipeline that uses resources from another AWS account. My code pipeline is in DEV account and deployment instances are created through CodeDeploy in PROD account. I made all configurations and updated codepipeline configuration file according this tutorial: https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create-cross-account.html When I tried to save the pipeline.json file, I got the error below: `C:\Users\scguser>aws codepipeline update-pipeline --cli-input-json file://pipeline.json

An error occurred (InvalidActionDeclarationException) when calling the UpdatePipeline operation: Input Artifact Bundle MyAppBuild in action ExternalDeploy is not declared as Output Artifact Bundle in any of the preceding actions`

below is a piece of configuration:

.....
{
                "name": "PROD_Deploy",
                "actions": [
                    {
                        "inputArtifacts": [
                            {
                                "name": "MyAppBuild"
                            }
                        ],
                        "name": "ExternalDeploy",
                        "actionTypeId": {
                            "category": "Deploy",
                            "owner": "AWS",
                            "version": "1",
                            "provider": "CodeDeploy"
                        },
                        "outputArtifacts": [],
                        "configuration": {
                            "ApplicationName": "prod-app-idp",
                            "DeploymentGroupName": "prod-depl-group-idp"
                        },
                        "runOrder": 1,
                        "roleArn": "arn:aws:iam::<prod  iam account>:role/cross-account-role-pipeline"
                    }
                ]
            }

So, what is going wrong in my side? Thank you

profile picture
dimasty
posta un mese fa113 visualizzazioni
1 Risposta
0

Hello ,



greeting for the day . 



I would like to inform you that this issue generally occurs when any input Artifacts defined in an action of a code pipeline is not declared in the preceding action of the same pipeline .

Example for reference :

{
 "pipeline": {
  "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service",
  "stages": [
    {
      "name": "Source",
      "actions": [
        {
          "inputArtifacts": [],
          "name": "Source",
          "actionTypeId": {
            "category": "Source",
            "owner": "AWS",
            "version": "1",
            "provider": "S3"
          },
          "outputArtifacts": [
            {
              "name": "MyApp”.             <<=====Output artifacts is defined with the name MyApp in source action  here . 
            }
          ],
          "configuration": {
            "S3Bucket": "awscodepipeline-demo-bucket2",
            "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip"
          },
          "runOrder": 1
        }
      ]
    },
    {
      "name": "Beta",
      "actions": [
        {
          "inputArtifacts": [
            {
              "name": "MyApp”.     <============ the same output artifacts MyApp is used as input artifacts here . 
            }
          ],
          "name": "CodePipelineDemoFleet",
          "actionTypeId": {
            "category": "Deploy",
            "owner": "AWS",
            "version": "1",
            "provider": "CodeDeploy"
          },
          "outputArtifacts": [],
          "configuration": {
            "ApplicationName": "CodePipelineDemoApplication",
            "DeploymentGroupName": "CodePipelineDemoFleet"
          },
          "runOrder": 1
        }
      ]
    }
  ],

Please note that in this example the input Artifacts called "MyApp" defined in action name “CodePipelineDemoFleet” is already declared to be available to the output Artifacts of action source .

Now in your example you have shared with us , I can observe that you have defined the input Artifacts : "MyAppBuild" as mentioned below

{
                "name": "PROD_Deploy",
                "actions": [
                    {
                        "inputArtifacts": [
                            {
                                "name": "MyAppBuild”.      
                            }
                        ],

Can you please confirm if this input Artifacts:”MyAppBuild” is passed as output Artifacts in any other action of your pipeline . In order to troubleshoot this issue I would suggest to pass the output Artifacts :””MyAppBuild” from the preceding action of your code pipeline which will help you to resolve this issue

Lastly I hope the above mentioned information sounds good to you and address your query raised . In case you have any further questions then please feel free to reach out to us , we will be always happy to assist you further .

Have a great day ahead .

AWS
TECNICO DI SUPPORTO
con risposta un mese fa
profile picture
ESPERTO
verificato un mese fa

Accesso non effettuato. Accedi per postare una risposta.

Una buona risposta soddisfa chiaramente la domanda, fornisce un feedback costruttivo e incoraggia la crescita professionale del richiedente.

Linee guida per rispondere alle domande