LoginSignup
0
0

More than 1 year has passed since last update.

lambda Node.js18 値をbcryptアルゴリズムでハッシュ化する

Posted at

概要

  • lambdaのランタイムNode.js18にてbcryptアルゴリズムを使って値をハッシュ化する方法を簡単にまとめる。

前提

  • npmコマンドが実行できる環境があること。(筆者はローカルのMacにVoltaを使ってNode.js18を入れている。)

方法

  1. npmコマンドが実行できる環境で下記のコマンドを実行しnodejsディレクトリを作成し、移動し、npm init -yを実行する。

    mkdir nodejs
    cd nodejs
    npm init -y
    
  2. 下記コマンドを実行してbcryptjsをインストールする。

    npm install bcryptjs
    
  3. 下記コマンドを実行してnodejsディレクトリをzip化する。

    cd ../
    zip -r nodejs.zip nodejs
    
  4. ランタイムNode.js18で、x86_64アーキテクチャでlambda関数を作成する。

  5. lambdaのページのサイドバーで「レイヤー」をクリックする。

  6. 「レイヤーの作成」をクリックする。

  7. 下記の様に設定して「作成」をクリックする。

    1. 名前: 任意のわかりやすい名前でOK
    2. アップロード種別: zipファイルをアップロードを選択
    3. zipファイルのアップロード: 「アップロード」をクリックし先程zip化した「nodejs.zip」を選択してアップロード
    4. 互換性のあるアーキテクチャ: x86_64を選択
    5. 互換性のあるランタイム: Node.js18を選択
  8. 当該lambda関数の関数の概要の「Layers」をクリックする。

    getSeacretManagerApiKey_-_Lambda.png

  9. 「レイヤーの追加」をクリックする。

    getSeacretManagerApiKey_-_Lambda.png

  10. レイヤーソースで「カスタムレイヤー」を選択し、プルダウンから先に作成したレイヤーを選択し、「追加」をクリックする。

  11. 下記の内容をlambdaのコードに記載する。

    index.mjs
    import bcrypt from "bcryptjs";
    
    let hashed = bcrypt.hashSync('hogefuga', 8);
    console.log(hashed);
    
    export const handler = async(event) => {
        // TODO implement
        const response = {
            statusCode: 200,
            body: JSON.stringify('Hello from Lambda!'),
        };
        return response;
    };
    
  12. lambda関数のHello-Worldなどのテストを作成し、lambda関数を実行する。

  13. 出力された文字列の中に、下記の様にハッシュ化された文字列が出力されれば完了である。

    undefined	INFO	$2a$08$JaBQnnj9aLXx/N1nZuPf1uzIgwnOVJAr1hsLXvGRYNqZQ5kL4L/KG
    

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0