【AWS Amplify】amplify add auth -> amplify push | The runtime parameter of nodejs12.x is no longer supported

amplify add authの後、amplify pushをすると何度やってもLambda作成のところで以下のようなエラーが発生。

Resource handler returned message: "The runtime parameter of nodejs12.x is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs18.x) while creating or updating functions. (Service: Lambda, S tatus Code: 400

これの解決方法はすでに色んなサイトで回答されていて、amplify cliを以下コマンドにて最新バージョンにすることでnodejs18.x以上のバージョンでLambdaを作成しようとしてくれて、問題なく作成される。

npm install -g @aws-amplify/cli

ところが自分の場合は会社のプロキシ設定の関係で、amplifyを最新バージョンにあげると、amplifyコマンドで以下エラーが発生し、何もできなくなる。

Downloading release from https://package.cli.amplify.aws/12.10.3/amplify-pkg-win-x64.tgz
Error fetching release: Request failed with status code 407

こんなポストも見つけたので、

大文字で環境変数登録してみたけど効果なし。

set HTTP_PROXY=http://username:password@10.0.0.1:8888
set HTTPS_PROXY=http://username:password@10.0.0.1:8888

仕方なく古いバージョンを指定してinstallし直す。

npm uninstall -g @aws-amplify/cli
npm install -g @aws-amplify/cli@7.6.24

するともちろん同じエラーが発生。

Resource handler returned message: "The runtime parameter of nodejs12.x is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs18.x) while creating or updating functions. (Service: Lambda, S tatus Code: 400

この環境で解決するしかなので、原因を考えてみる。まず「amplify push」は「amplify add auth」で生成されたCloudFormationのテンプレートをクラウド側で実行する動きをする認識。なので、CloudFormation内のLambda関数部分で「nodejs12」を指定しているところがあるはず。 あった!ここが原因なので、ここを「nodejs18.x」に修正してやるとこのエラーは解消した。

普通はamplify cliのバージョンを最新にするだけで解消するのであまりないケースだとは思いますが、もし同じような境遇の方がいれば参考になれば幸いです。