Answer: D
Option A is incorrect because using the Management Console might tempt a one-off deployment inefficient when it needs to be done several times.
Option B is incorrect because pointing an alias will not instantly switch traffic as it doesn’t state that the PROD alias is actually deployed.
Option C is incorrect.Although it is the next closest answer; setting DeploymentPreference will immediately switch traffic but is used for a more complex deployment. With this property, you can mention alarms that need to be monitored, hooks that can be run pre and post traffic shifting, and also a traffic switching type needs to be defined.
Option D is CORRECT as the AutoPublishAlias property will create a new alias, create and publish a new version of the Lambda code, point alias to this version and point all event sources to this alias. The question states find the most effortless and efficient way to achieve this, and the above actions are performed by setting the AutoPublishAlias property with the alias name. You are also asked to switch traffic to the new version instantly. So finding an automated way to this will always be the most efficient.
Reference:
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html