exit コールの作成または変更
関数が ES6 を使用している場合、または、HTTP コールまたは AWS Lambda 間のコール以外の exit コールが含まれている場合は、exit コールを作成する必要があります。
次のコードスニペットは、MySQL データベースを呼び出す AWS Lambda 関数の exit コールを作成する方法を示しています。
// Use the exit call API in your AWS Lambda handler function
module.exports.myLambdaHandler = async function () {
const queryPromise = new Promise(function (resolve, reject) {
const dbConfig = {
host: '127.0.0.1', // The host where MySQL server runs
port: 3306, // Note that this is not an identifying property. Identifying properties must be strings
user: 'root',
database: 'movies'
};
const mysql = require('mysql');
const mysqlClient = mysql.createPool(dbConfig);
mysqlClient.getConnection(function (err, connection) {
if (err) {
reject({
statusCode: 500,
body: 'Couldn\'t make the connection to mysql client.'
});
return;
}
// Create an Exit Call
var exitCall = tracer.startExitCall({
exitType: 'DB',
exitSubType: 'DB',
identifyingProperties: {
'HOST': '127.0.0.1', // The host where MySQL server runs
'PORT': '3306',
'DATABASE': 'movies',
'VENDOR': 'MYSQL'
}
});
connection.query('SELECT * FROM ClassicHits', function (err, results) {
connection.release();
if (err) {
reject({
statusCode: 500,
body: 'Mysql query failed'
});
return;
}
// Stop the Exit Call
tracer.stopExitCall(exitCall);
resolve({
statusCode: 200,
body: JSON.stringify(results)
});
});
});
});
return queryPromise;
}
exit コールタイプおよび識別プロパティ
コントローラでは、すべての exit コールに個別のタイプがあり、一連の識別プロパティによって決定されます。exit コールのタイプ、サブタイプ、および識別プロパティを次に示します。exit コールサブタイプの場合、表に記載されている例を使用するか、空の文字列を使用できます。識別プロパティは文字列である必要があります。
| exit コールタイプ | exit コールサブタイプ | 識別プロパティ |
|---|---|---|
| HTTP | HTTP |
HOST PORT URL QUERY STRING |
| DB |
DB |
URL HOST PORT データベース VERSION VENDOR |
| キャッシュ |
キャッシュ |
VENDOR サーバープール |
| カスタム |
CASSANDRA CQL COUCHBASE AMAZON WEB SERVICES MONGODB |
ユーザ定義のプロパティセット。 |
次のインターセプタがサポートされており、CommonJS での手動でのインストルメンテーションは必要ありません。
lambda.invokeのaws_sdkおよびlambda.invokeAsynchttpとhttpsライブラリ