LoginSignup
0
0

[過去記事]AWS lambda Node.jsの追加モジュールを使用せず他のAPIを実行してみる

Posted at

今回作るもの

private__Online_Whiteboard_for_Visual_Collaboration-1-1024x429.png

今回はlambdaを用いてQiitaのユーザー情報APIを実行しレスポンスをconsole.logで出力してみようと思います!

前提

今回の作業にはAWSのアカウントを持っていることを前提とします。また、lambda関数作成権限とIAMロール作成権限が必要です。

準備

lambda

まずはブラウザからAWSにログインしコンソールを開き、lambdaのホームまで移動しましょう。
その後、左サイドバーの「関数」をクリックし、開いたページで「関数の作成」をクリックしましょう。

関数_-_Lambda-1024x365.png

開いたページで下記の様に設定します。

関数の種類:一から作成
関数名:getQiitaUserForDefault
ランタイム:Node.js 18.x
アーキテクチャ:x86_64
実行ロール:基本的なLambdaアクセス権限で新しいロールを作成
詳細設定:特に設定しない。

設定内容を確認し「関数の作成」をクリックします。

関数の作成_-_Lambda-1024x726.png

遷移先ページで「Test」をクリックします。

getQiitaUserForDefault_-_Lambda-1024x577.png

開いたページで下記の様に設定します。

イベントアクションをテスト:新しいイベントを作成
イベント名:test
イベント共有の設定:プライベート
テンプレート - オプション:hello-world

設定内容を確認し「保存」をクリックします。

getQiitaUserForDefault_-_Lambda-1-696x1024.png

コードソースの「index.mjs」をクリックし開きます。

getQiitaUserForDefault_-_Lambda-2-1024x500.png

表示されたindex.mjsの内容を一旦削除し下記のコードを記載します。

index.mjs
import https from "https";

const url = "https://qiita.com/api/v2/users/miriwo";

export const handler = (event) => {
    https.get(url, (res) => {
        let body = '';
  
        res.on("data", function (d) {
            body += d;
        });
    
        res.on('end', function () {
            console.log(body);
        })
    })
    .on("error", (e) => {
        console.error(e);
    });
};

「cmd」+「s」でindex.mjsを上書き保存し「Deploy」をクリックして反映します。

getQiitaUserForDefault_-_Lambda-3.png

実行

それではテストを使って記載したコードを動かしてみましょう!
「Test」をクリックしてコードを動かします。

getQiitaUserForDefault_-_Lambda-4.png

すると「Execution result」タブが増え、テスト結果が出力されます!その中にQiitaのAPIのレスポンスが表示されているはずです、、!これで外部のAPIを実行し、そのレスポンスを出力する事ができました!

getQiitaUserForDefault_-_Lambda-5-1024x480.png

まとめ

今回はlambdaのNode.jsから追加モジュール無しでAPIを実行してみました!非同期処理、、、独特、、、!

参考文献

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