Search code examples
amazon-web-servicesjenkinsamazon-s3amazon-ec2aws-code-deploy

AWS CodeDeploy: DeploymentConfigDoesNotExistException


I'm trying to deploy code to AWS EC2 from Jenkins with the CodeDeploy plugin. Building and uploading to S3 works fine. The problems occurs when it should deploy to EC2. The plugin complains that there is no configuration. My first guess was that it is referring to the appspec.yml in the solution root, but I'm starting to think that it is some other configuration that I have missed on the way. What do you think?

C:\Program Files (x86)\Jenkins\workspace\FILVAL-Dev>exit 0 
Zipping files into C:\Windows\TEMP\#38-7546986511493287644.zip
Uploading zip to s3://filval/#38-7546986511493287644.zip
Registering revision for application 'ValidationService'
Creating deployment with revision at {RevisionType: S3,S3Location: {Bucket: filval,Key: #38-7546986511493287644.zip,BundleType: zip,ETag: 7d140edf523ea132fe10421b0fa5db1e},}
Failed CodeDeploy post-build step; exception follows.
No deployment configuration found for name: CodeDeploymentDefault.OneAtATime (Service: AmazonCodeDeploy; Status Code: 400; Error Code: DeploymentConfigDoesNotExistException; Request ID: 2acde7f6-04bc-11e8-b3aa-87f32971b619)
com.amazonaws.services.codedeploy.model.DeploymentConfigDoesNotExistException: No deployment configuration found for name: CodeDeploymentDefault.OneAtATime (Service: AmazonCodeDeploy; Status Code: 400; Error Code: DeploymentConfigDoesNotExistException; Request ID: 2acde7f6-04bc-11e8-b3aa-87f32971b619)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1639)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1304)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1056)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)
    at com.amazonaws.services.codedeploy.AmazonCodeDeployClient.doInvoke(AmazonCodeDeployClient.java:3358)
    at com.amazonaws.services.codedeploy.AmazonCodeDeployClient.invoke(AmazonCodeDeployClient.java:3334)
    at com.amazonaws.services.codedeploy.AmazonCodeDeployClient.executeCreateDeployment(AmazonCodeDeployClient.java:1300)
    at com.amazonaws.services.codedeploy.AmazonCodeDeployClient.createDeployment(AmazonCodeDeployClient.java:1276)
    at com.amazonaws.codedeploy.AWSCodeDeployPublisher.createDeployment(AWSCodeDeployPublisher.java:415)
    at com.amazonaws.codedeploy.AWSCodeDeployPublisher.perform(AWSCodeDeployPublisher.java:237)
    at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:81)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)
    at hudson.model.Build$BuildExecution.post2(Build.java:186)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)
    at hudson.model.Run.execute(Run.java:1749)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:421)
ERROR: Step ‘Deploy an application to AWS CodeDeploy’ failed: null
Finished: FAILURE

Solution

  • The error says you are using a wrong Deployment Configuration. These are the default configurations:

    enter image description here

    Note that you have CodeDeploymentDefault.OneAtATime, it should be CodeDeployDefault.OneAtATime.

    On Jenkins, you can change it here:

    enter image description here

    Image taken from Setting Up the Jenkins Plugin for AWS CodeDeploy