Node.js Lambdaでヘッダーを解析する方法


方法1: event.headersオブジェクトを使用する方法 Lambda関数のeventパラメータには、リクエストに関する情報が含まれています。その中にheadersプロパティがあり、ヘッダー情報が格納されています。以下はその例です。

exports.handler = async (event) => {
  const headers = event.headers;
  // ヘッダー情報の解析と使用例
  const userAgent = headers['User-Agent'];
  const contentType = headers['Content-Type'];
  console.log('User-Agent:', userAgent);
  console.log('Content-Type:', contentType);
  // 他の処理をここに記述する
  return {
    statusCode: 200,
    body: 'ヘッダー解析が完了しました。',
  };
};

上記の例では、User-AgentContent-Typeというヘッダーの値を取得し、コンソールに出力しています。

方法2: req.headersオブジェクトを使用する方法 もし、Lambda関数がExpress.jsなどのフレームワーク上で動作している場合、reqオブジェクトを使用してヘッダー情報にアクセスすることもできます。以下はその例です。

const express = require('express');
const app = express();
app.get('/', (req, res) => {
  const headers = req.headers;
  // ヘッダー情報の解析と使用例
  const userAgent = headers['user-agent'];
  const contentType = headers['content-type'];
  console.log('User-Agent:', userAgent);
  console.log('Content-Type:', contentType);
  // 他の処理をここに記述する
  res.send('ヘッダー解析が完了しました。');
});
exports.handler = async (event, context) => {
  const server = app.listen(3000, () => {
    console.log('Expressサーバーが起動しました。');
  });
  context.callbackWaitsForEmptyEventLoop = false;
  return new Promise((resolve, reject) => {
    server.close((err) => {
      if (err) {
        console.error('Expressサーバーの終了時にエラーが発生しました。', err);
        reject(err);
      } else {
        console.log('Expressサーバーが終了しました。');
        resolve();
      }
    });
  });
};

上記の例では、Express.jsを使用してLambda関数を作成し、req.headersオブジェクトからヘッダー情報を取得しています。

以上が、Node.js Lambdaでヘッダーを解析する方法の一部です。他にもさまざまな方法がありますが、ここでは代表的な方法を紹介しました。必要に応じてこれらの例を参考にしながら、自身のLambda関数に適用してください。