VisualStudio(C#)から「Publish AWS Serverless Application」するとAspNetCoreFunctionRoleがCREATE_FAILEDになる。

2012/03/29から既存のC#で作ったLambdaがAWSにPublishできない現象が発生しました。
Lambda のアイデンティティベースの IAM ポリシーによると
AWSLambdaFullAccess と AWSLambdaReadOnlyAccessは 2021年3月1日に非推奨となったようです。
AspNetCoreFunctionRoleの作成に失敗するのも原因はAWSLambdaFullAccessのようです。
解決方法は
  • publishの際に使用するIAMユーザーにAWSLambda_FullAccessをアタッチする。
  • VisualStudioを起動して「serverless.template」ファイル内の「AWSLambdaFullAccess」をアンダーバー付きの「AWSLambda_FullAccess」に書き換える
  • 既にpublishに失敗し、CloudFormationに失敗のステータスが残っている場合は削除する

これでpublishできるようになります。