web-dev-qa-db-ja.com

AWS Lambda-エラー:モジュール「uuid / v4」が見つかりません

AWS Lambda JavaScriptコードでUUIDモジュールを使用しようとすると、このエラーが表示されます。

Error: Cannot find module 'uuid/v4'

AWSCLIまたはNPMを使用していません。代わりに、AWS Lambdaダッシュボードを使用してJavaScriptでLambda関数を作成しています。

const AWS = require('aws-sdk');
const AWSUUID = require('uuid/v4');
const AWSGamelift = new AWS.GameLift();

exports.handler = async (event) => 
{
 //...

私は、UUIDモジュールを機能させる方法を見つけるためにGoogleをノンストップで検索してきました。 NPM環境をセットアップして使用する必要はありません。

AWS LambdaダッシュボードにLambdaコードのUUIDモジュールへのアクセスを提供する方法はありますか?

4
mattyman174

AWS Lambda Layersは、npm環境をセットアップしない場合のオプションです。

AWSコンソールからfrom Lambda関数の新しいレイヤーを作成し、uuid npmパッケージを含むnode_modulesディレクトリのZipファイルをアップロードします。

この作業を行うために覚えておかなければならないことがいくつかあります。

  1. ディレクトリ構造はAWSドキュメントに従って維持する必要があります https://docs.aws.Amazon.com/lambda/latest/dg/configuration-layers.html#configuration-layers-path

enter image description here

これは重要です。それ以外の場合、Lambda関数はパッケージを認識しません。

  1. Lambda関数のIAMロールにはlambda:GetLayerVersionアクション権限が必要です。そうしないと、パッケージが見つからないという問題が発生します。これについても、上記のドキュメントで明確に説明されています。

これらが完了したら、コードを実行できます。応答例

enter image description here

nodejsフォルダー構造は次のとおりです

enter image description here

0
Raj