Which strategies should the Solutions Architect use to meet the requirements?
Allow users to download solution code as Docker images. Use AWS CodeBuild and AWS CodePipeline for the CI/CD pipeline. Use Docker images for different solution features and the AWS CLI to turn features on and off. Use AWS CodeDeploy to run unit tests and security scans, and for deploying and updating a solution with changes.
Allow users to download solution code artifacts. Use AWS CodeCommit and AWS CodePipeline for the CI/CD pipeline. Use AWS Amplify plugins for different solution features and user prompts to turn features on and off. Use AWS Lambda to run unit tests and security scans, and AWS CodeBuild for deploying and updating a solution with changes.
Allow users to download solution code artifacts in their Amazon S3 buckets. Use Amazon S3 and AWS CodePipeline for the CI/CD pipelines. Use CloudFormation StackSets for different solution features and to turn features on and off. Use AWS Lambda to run unit tests and security scans, and CloudFormation for deploying and updating a solution with changes.
Allow users to download solution code artifacts. Use AWS CodeCommit and AWS CodePipeline for the CI/CD pipeline. Use the AWS Cloud Development Kit constructs for different solution features, and use the manifest file to turn features on and off. Use AWS CodeBuild to run unit tests and security scans, and for deploying and updating a solution with changes.
Explanations:
This option suggests using Docker images and AWS CLI for feature toggling, which is not ideal for flexible CloudFormation-based solutions that require code artifact management. Additionally, using AWS CodeDeploy for unit tests and security scans is inappropriate; CodeDeploy is primarily for deployment.
AWS Amplify plugins are not well-suited for infrastructure-focused solutions using CloudFormation. Lambda is also not ideal for running unit tests and security scans, as CodeBuild is better suited for build and testing purposes.
Using Amazon S3 for CI/CD pipelines is not standard practice, and S3 lacks native support for deployment management and feature toggling. StackSets are typically for managing resources across accounts, not for toggling individual features.
CodeCommit and CodePipeline offer a solid foundation for a CI/CD pipeline. The AWS Cloud Development Kit (CDK) allows for feature flexibility, while manifest files are effective for feature toggling. CodeBuild is correctly used for running unit tests, security scans, and handling deployment updates.