-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[pipelines] Asset stage can't support more than 50 assets. #9353
Comments
I am running into this as well in a serverless setup since I use one asset per Lambda to keep function size minimal. Right now my workaround is to have a few lambdas handle several routes but I’d rather keep a 1:1 mapping. As an addition, it might be helpful to highlight the potential financial impact for this. I am assuming it is just build minutes but haven’t dug in. Don’t want to run I to a surprise bill 😅 |
This also limits CDK apps to have maximum 25 stacks since two actions (one prepare & one deploy) are created in the deploy stage for each stack. Our app have already reached this limit. One possible workaround, to at least increase the limit to 50 stacks, is to put the prepare & deploy actions into different pipeline stages. |
@rix0rrr Is there a plan of how this will potentially be implemented yet? I'm coming pretty close to this limit, 48 assets, so if there is anyway I can help push this through that would be great! |
AWS CodePipeline has (at the time of this writing) a non-adjustable quota of 50 total stages per pipeline and 50 total actions per stage. High number of artifacts can drive a pipeline to exceed 50 stages, hitting the non-adjustable quota. What about using AWS Step Functions to execute AWS CodeBuild projects using a Map state? CodePipeline has a native integration with Step Functions, so no custom code would be required for such invocation. Step Functions has a native integration with CodeBuild, so no custom code would be required here as well. The flow would be: The Map state can hold IDs of the artifacts (managed by |
CodePipelines has a hard limit of 50 actions per stage. Currently, all asset publishing actions are assigned to a single stage, limiting pipelines to 50 total assets. This change dynamically creates new stages as necessary to allow expansion beyond 50 assets. This should allow for hundreds (or thousands) of assets before hitting the 50 stages per pipeline hard limit. fixes #9353
CodePipelines has a hard limit of 50 actions per stage. Currently, all asset publishing actions are assigned to a single stage, limiting pipelines to 50 total assets. This change dynamically creates new stages as necessary to allow expansion beyond 50 assets. This should allow for hundreds (or thousands) of assets before hitting the 50 stages per pipeline hard limit. fixes #9353 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
|
@njlynch Thanks for the fix! However, the same issue exists when a single stage has more than 50 actions as well, either by having more than 25 stacks (1 prepare action + 1 deploy action) or less stacks + manual approvals. Is there a plan to fix that limit as well? |
When attempting to deploy a pipeline with more than 50 assets, the deploy fails due to the Asset stage having more than 50 actions.
Reproduction Steps
Deploy a pipeline with > 50 assets.
Error Log
On deploy, the following error is hit:
Pipeline stage 'Assets' has too many actions. There can only be up to 50 actions in a pipeline stage (Service: AWSCodePipeline; Status Code: 400; Error Code: InvalidStageDeclarationException; Request ID: xxx)
Other
The approach will likely be to dynamically create new asset publishing stages to the pipeline when > 50 assets are created. This will require API support in CodePipelines, as currently stages can't be inserted, only added to the end of the pipeline.
This is 🐛 Bug Report
The text was updated successfully, but these errors were encountered: