.NET または .NET Core ベースの AWS Lambda 関数のネイティブ・トレースのセットアップ
.NET または .NET Core で作成された Instana AutoTrace for AWS Lambda 関数をセットアップできます。 .NET ベースの AWS Lambda 関数のネイティブ・トレースをセットアップするには、Instana Lambda レイヤーを Lambda 関数に追加する必要があります。 トレースを有効にすると、Instana UI で Lambda 関数のトレース・データを表示できます。
サポートされるランタイム
Instana は、.NET 6 以降で実行されるモニター・アプリケーションをサポートします。
AWS Lambda関数をトレース用に設定する
Instana が AWS Lambda ランタイムの内部から収集できないバージョンおよびランタイム・メトリックを収集するために、 Lambda モニター用のAWS エージェント をセットアップしていることを確認してください。
AWS Web コンソールまたは以下のいずれかの AWS 管理ツールを使用して、Lambda 関数のトレースを有効にすることができます。
AWS ウェブコンソールからトレースを有効にする
.NET または .NET Core Lambda 関数のトレースを有効にするには、 AWS Lambda UI で以下のステップを実行します。
以下のステップに示すように、Instana Lambda レイヤーを関数に追加します。
Lambda 関数の 「構成」 タブで、 「層」 > 「層の追加」をクリックします。
「層の追加」ウィンドウで、 「ARN の指定」を選択します。
「ARN の指定 (Specify an ARN)」 フィールドで、地域に一致する Instana Lambda レイヤーの Amazon リソース名 (ARN) をコピーして貼り付けます。 Instana Lambda レイヤーの正しい ARN は、 「Instana Lambda レイヤー」 セクションにあります。 次に、 「検証」をクリックします。
追加 をクリックします。
Instana バックエンドに接続するには、以下の環境変数を構成します。
環境変数 値 CORECLR_ENABLE_PROFILING
1
CORECLR_PROFILER
{cf0d821e-299b-5307-a3d8-b283c03916dd}
CORECLR_PROFILER_PATH
/opt/instana_tracing/CoreProfiler.co
DOTNET_STARTUP_HOOKS
/opt/Instana.Tracing.Core.dll
INSTANA_AGENT_KEY
<your_instana_agent_key>
INSTANA_ENDPOINT_URL
<serverless_instana_endpoint>
INSTANA_AWS_ACCOUNT_ID
<your_aws_account_id>
LAMBDA_HANDLER
<Assembly::Namespace.ClassName::MethodName>
https://serverless-
で始まる、お住まいの地域の正しい Instana エンドポイント URLを使用していることを確認してください。 詳しくは、 サーバーレス・モニターのエンドポイントを参照してください。デフォルト・ハンドラーが
Assembly::Namespace.ClassName::MethodName
フォーマットを使用しない場合は、LAMBDA_HANDLER
フォーマットでデフォルト・ハンドラーを設定します。 それ以外の場合は、変数を設定したり、変数を空のままにしたりしないでください。 トレースとインフラストラクチャー・エンティティーの間の接続を示す相関データが Instana UI で欠落している場合は、LAMBDA_HANDLER
を使用して正しい形式を設定してください。Instana UI からこれらの環境変数の正しい値を取得することもできます。 これらの環境変数の正しい値を取得するには、Instana UI で 「その他」 > 「エージェント」 > 「エージェントのインストール」 > プラットフォーム: AWS > Technology: AWS Lambda をクリックします。
AWS コマンドラインインタフェースによるトレースの有効化
AWS Lambdas の Instana 統合を自動化する場合は、以下の AWS CLI コマンドの例を参照してください。
# Do not copy and paste this verbatim!
# It will overwrite any previously defined collection of layers and
# environment variables.
aws --region $YOUR_REGION lambda update-function-configuration \
--function-name $YOUR_LAMBDA_FUNCTION_NAME \
--layers $INSTANA_LAYER_ARN \
--environment "Variables={CORECLR_ENABLE_PROFILING=1, CORECLR_PROFILER=\"{cf0d821e-299b-5307-a3d8-b283c03916dd}\", CORECLR_PROFILER_PATH=/opt/instana_tracing/CoreProfiler.so, DOTNET_STARTUP_HOOKS=/opt/Instana.Tracing.Core.dll, INSTANA_ENDPOINT_URL=... , INSTANA_AGENT_KEY=... , ...}"
Instana Lambda レイヤー
地域に応じた .NET 用の AWS Lambda レイヤーの最新バージョンの ARN は、以下のとおりです。
リージョン | ARN |
---|---|
af-south-1 |
arn:aws:lambda:af-south-1:410797082306:layer:instana-dotnetcore:17 |
ap-east-1 |
arn:aws:lambda:ap-east-1:410797082306:layer:instana-dotnetcore:17 |
ap-northeast-1 |
arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-dotnetcore:17 |
ap-northeast-2 |
arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-dotnetcore:17 |
ap-northeast-3 |
arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-dotnetcore:17 |
ap-south-1 |
arn:aws:lambda:ap-south-1:410797082306:layer:instana-dotnetcore:17 |
ap-south-2 |
arn:aws:lambda:ap-south-2:410797082306:layer:instana-dotnetcore:17 |
ap-southeast-1 |
arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-dotnetcore:17 |
ap-southeast-2 |
arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-dotnetcore:17 |
ap-southeast-3 |
arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-dotnetcore:17 |
ap-southeast-4 |
arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-dotnetcore:17 |
ca-central-1 |
arn:aws:lambda:ca-central-1:410797082306:layer:instana-dotnetcore:17 |
`cn-north-1' | arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-dotnetcore:15 |
`cn-northwest-1' | arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-dotnetcore:15 |
eu-central-1 |
arn:aws:lambda:eu-central-1:410797082306:layer:instana-dotnetcore:16 |
eu-central-2 |
arn:aws:lambda:eu-central-2:410797082306:layer:instana-dotnetcore:17 |
eu-north-1 |
arn:aws:lambda:eu-north-1:410797082306:layer:instana-dotnetcore:17 |
eu-south-1 |
arn:aws:lambda:eu-south-1:410797082306:layer:instana-dotnetcore:17 |
eu-south-2 |
arn:aws:lambda:eu-south-2:410797082306:layer:instana-dotnetcore:17 |
eu-west-1 |
arn:aws:lambda:eu-west-1:410797082306:layer:instana-dotnetcore:16 |
eu-west-2 |
arn:aws:lambda:eu-west-2:410797082306:layer:instana-dotnetcore:17 |
eu-west-3 |
arn:aws:lambda:eu-west-3:410797082306:layer:instana-dotnetcore:16 |
il-central-1 |
arn:aws:lambda:il-central-1:410797082306:layer:instana-dotnetcore:17 |
me-central-1 |
arn:aws:lambda:me-central-1:410797082306:layer:instana-dotnetcore:17 |
me-south-1 |
arn:aws:lambda:me-south-1:410797082306:layer:instana-dotnetcore:17 |
sa-east-1 |
arn:aws:lambda:sa-east-1:410797082306:layer:instana-dotnetcore:16 |
us-east-1 |
arn:aws:lambda:us-east-1:410797082306:layer:instana-dotnetcore:17 |
us-east-2 |
arn:aws:lambda:us-east-2:410797082306:layer:instana-dotnetcore:17 |
us-west-1 |
arn:aws:lambda:us-west-1:410797082306:layer:instana-dotnetcore:16 |
us-west-2 |
arn:aws:lambda:us-west-2:410797082306:layer:instana-dotnetcore:16 |
例えば、ARN パターンは arn:aws:lambda:${region}:410797082306:layer:instana-dotnetcore:${layer-version}
です。 中国の AWS 地域の場合、ARN パターンは arn:aws-cn:lambda:${region}:107998019096:layer:instana-dotnetcore:${layer-version}
です。
常に最新バージョンの Instana Lambda レイヤーを使用するようにしてください。 定期的な間隔で使用するレイヤー・バージョンを更新して、新しいバージョンのレイヤーが提供するフィーチャーおよびフィックスを利用できるようにします。
既知の問題
AWS Lambda 関数の実行中に、ログに以下のエラーが表示されることがあります。 このエラーは Instana の内部エラーであり、Lambda 関数が動作を停止したか、エラーが発生したことを意味するものではありません。 Instana UI でトレースを見つけることができる場合は、このメッセージを無視できます。
Error sending traces. Exception: System.Threading.Tasks.TaskCanceledException, Message:The request was canceled due to the configured HttpClient.Timeout of 2 seconds elapsing. (calling https://serverless.instana.io/bundle), Original exception: A task was canceled., CallStack: at System.Net.Http.HttpClient.HandleFailure(Exception e, Boolean telemetryStarted, HttpResponseMessage response, CancellationTokenSource cts, CancellationToken cancellationToken, CancellationTokenSource pendingRequestsCts)