LambdaでX-Rayを有効化する方法と無効化する方法について記載します。
X-Rayを有効化するには、以下の設定を行うだけで簡単に始められます
- 新規関数作成時
- 関数の作成
- ロールの設定
- X-Rayの設定
- 既存関数使用時
- ロール設定
- X-Rayの設定
X-Rayの使い方は以下の記事をご参照ください
X-Rayを無効化したい場合は「AWS X-Rayの無効化(終了)方法」まで読み飛ばして大丈夫です。

それでは、関数作成して、X-Rayの有効化をしていきます
X-Rayの有効化
関数作成して、X-Rayを有効化していきます。
関数の作成
→既存関数のX-Rayを有効化する場合はこのステップはスキップしてください
ロールの設定
X-Rayの設定
Lambda関数の作成
Lambda関数を作成します。既存関数のX-Rayを有効化する場合はこのステップはスキップしてください。
- 関数名:適切なもの
- ランタイム:Node.js 18.x
ソースコードを以下のソースコードに置き換えデプロイします。
1秒スリープ後にレスポンスを返すソースコードになります。
const sleep = (m) => {
return new Promise((resolve) => setTimeout(resolve, m));
};
export const handler = async(event) => {
console.log("Start!");
await sleep(1000);
console.log("End!");
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
Lambdaのロール設定
X-Rayを開始するために必要なロールを割り当てます。
必要なロールは、トレースデータをアップロードするロールとなります。具体的には以下の設定を追加すれば大丈夫です。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"xray:PutTraceSegments",
"xray:PutTelemetryRecords"
],
"Resource": [
"*"
]
}
]
}
X-Rayを有効化(開始)する
「設定タブ→モニタリングおよび運用ツール」から開始します。
以下の画面で「AWS X-Ray」をONにします。

Lambda X-Ray 有効化
AWS X-Rayの確認
AWS X-Rayコンソール画面にアクセスし、Service Mapを選択して、以下のような画面が表示されればOKです。

X-ray service map
AWS X-Rayの無効化(終了)方法
Lambda関数の「設定タブ→モニタリングおよび運用ツール」から終了します。
「AWS X-Ray」をOFFにすればOKです。

Lambda X-Ray 有効化
まとめ
LambdaのX-Rayの有効化と無効化の切り替えは簡単に行えることが確認できましたー
X-Rayは有料ですので、パフォーマンスに問題発生時など調査が必要な時だけ有効化、不要な時は無効化した方がいいと思います。
料金の詳細は以下を参照していただければと思いますが、Lambda関数の実行数に応じて(トレースする数に応じて)料金も増えていくので、実行数が多い場合は要注意かと思いますー
