Answer - B, C and D.
The AWS Documentation mentions the following.
Automating Deployment of Lambda Applications.
In the previous section, you learned how to create a SAM template, generate your deployment package, and use the AWS CLI to deploy your serverless application manually.
In this section, you will leverage the following AWS services to automate the deployment process fully.
AWS CodePipeline: You use AWS CodePipeline to model, visualize, and automate the steps required to release your serverless application.
For more information, see What is AWS CodePipeline?
AWS CodeBuild: You use AWS CodeBuild to build, locally test, and package your serverless application.
For more information, see What is AWS CodeBuild?
AWS CloudFormation: You use AWS CloudFormation to deploy your application.
For more information, see What is AWS CloudFormation?
AWS CodeDeploy: You use AWS CodeDeploy to deploy updates to your serverless applications gradually.
For more information on how to do this, see Gradual Code Deployment.
Option A is invalid because it can be used in front of the Lambda function but cannot do the automated deployment.