[小ネタ]API GatewayでLambdaオーソライザー関数をエイリアスやバージョンで指定してみた

エイリアスで指定して管理を楽にしましょう
2023.02.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、AWS事業本部@福岡オフィスのべこみん(@beco_minn)です。

今回は小ネタです。

皆さんはLambdaオーソライザーを使ったことありますか?

LambdaオーソライザーとはAmazon API Gateway(以下API GW)の機能で、Lambda関数を使用してAPIへのアクセスをトークンベースやリクエストパラメータベースで制御出来るものです。

詳しくは下記ドキュメントをご参照ください。

今回はそんなLambdaオーソライザーで、認証認可の処理を行う"Lambdaオーソライザー関数"をAPI GW側で指定する際の小ネタです。

Lambda オーソライザー関数はエイリアスやバージョンでの指定も可能

はい、見出しの通りです。

上述の公式ドキュメントには記載されていませんが、API GW側でLambdaオーソライザー関数を指定する際にLambda関数のエイリアスやバージョンを指定することが可能です。

実際にLambda関数を指定する箇所に入力しようとすると、指定しているリージョンに存在するLambda関数がドロップダウン形式で表示されます。

ですが、ドロップダウン形式で表示はされるものの入力欄自体はドロップダウンボックスではなくテキストボックスです。

ですので、そのまま任意の文字列を入力することが出来ます。

ちなみにエイリアスやバージョンを指定する場合には「関数名:alias名」もしくは「関数名:バージョン数」と入力してください。

例:)

  • function-a:prod
  • function-a:1

下図は「hoge0213apigw-auth」というLambda関数に「hoge」というエイリアスがある場合の記述例です。

もちろん何も入力しなければデフォルトでlatestが指定されます。(:latestは無効でした。)

ちなみにこの内容はLambdaオーソライザーの作成ドキュメント上に記載は無いのですが、コンソール上の「i」マークにマウスオーバーすることで確認可能です。

Lambda 関数名またはエイリアス/バージョン(例:functionName:alias)を入力します。別のアカウントの ARN を入力することもできます。

最後に

エイリアスやバージョンでLambda関数を指定出来るのは良いですよね。特にエイリアスで指定しておくと余計な管理の手間が減るので良いです。

些細な内容ですが、お役に立てれば幸いです。

以上、べこみんでした。