方法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-Agent
とContent-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関数に適用してください。