.NET または.NET Core をベースとする AWS Lambda 関数に対するネイティブトレースの設定

.NET または.NET Core で記述された AWS Lambda 関数に対して、 Instana ( AutoTrace )を設定できます。

詳細については、 Instana および AutoTrace をご覧ください。

.NET ベースの AWS Lambda 関数でネイティブトレースを設定するには、Lambda関数に Instana のLambdaレイヤーを追加する必要があります。 トレースを有効にすると、 Instana のUIでLambda関数のトレースデータを表示できるようになります。

サポートされるランタイム

Instana .NET 8以降で動作する監視アプリケーションに対応しています。

AWS Lambda のトレース機能の設定

環境に応じて、以下の設定オプションのいずれかを使用して、.NET または.NET Core をベースとする AWS Lambda 関数のトレースを有効にできます

AWS Webコンソールでのトレース機能を有効にする

.NET または.NET Core のLambda関数のトレースを有効にするには、 AWS Lambda のUIで以下の手順を実行してください:

  1. 以下の手順に従って、 Instana のLambdaレイヤーを関数に追加してください:

    1. Lambda 関数の 「構成」 タブで、 「層」 > 「層の追加」をクリックします。

      層

    2. 「層の追加」ウィンドウで、 「ARN の指定」を選択します。

    3. ARNの指定 」フィールドに、お使いのリージョンに対応する Instana LambdaレイヤーのAmazonリソース名(ARN)をコピーして貼り付けてください。 Instana のLambdaレイヤーに対応するARNは、 「 Instana のLambdaレイヤー 」セクションで確認できます。 次に、 「検証」をクリックします。

    4. 追加 をクリックします。

  2. Instana バックエンドに接続するには、以下の環境変数を設定してください:

    環境変数
    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_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>

    お使いのリージョンに対応した、. で始まる正しい Instana エンドポイント( URLhttps://serverless-)を使用していることを確認してください。 詳細については、 「サーバーレス監視のエンドポイント」 を参照してください。

    注: デフォルトのハンドラーが 形式 Assembly::Namespace.ClassName::MethodName を使用していない場合は、デフォルトのハンドラーを 形式 LAMBDA_HANDLER で設定してください。 それ以外の場合は、変数を設定したり、変数を空のままにしたりしないでください。 トレースとインフラストラクチャ・エンティティの関連性を示す相関データが Instana のUIに表示されない場合は、 を使用して LAMBDA_HANDLER 正しい形式を設定してください。

    これらの環境変数の正しい値は、 Instana のUIからも確認できます。 これらの環境変数の正しい値を取得するには、 Instana のUIで、 [More] > [Agents] > [Install Agents ] > [Platform: AWS ] > [Technology: AWS Lambda ] の順にクリックしてください。

AWS のコマンドラインインターフェースでトレースを有効にする

AWS のLambda関数における 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:41
ap-east-1 arn:aws:lambda:ap-east-1:410797082306:layer:instana-dotnetcore:41
ap-northeast-1 arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-dotnetcore:41
ap-northeast-2 arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-dotnetcore:41
ap-northeast-3 arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-dotnetcore:41
ap-south-1 arn:aws:lambda:ap-south-1:410797082306:layer:instana-dotnetcore:41
ap-south-2 arn:aws:lambda:ap-south-2:410797082306:layer:instana-dotnetcore:41
ap-southeast-1 arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-dotnetcore:41
ap-southeast-2 arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-dotnetcore:41
ap-southeast-3 arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-dotnetcore:41
ap-southeast-4 arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-dotnetcore:41
ca-central-1 arn:aws:lambda:ca-central-1:410797082306:layer:instana-dotnetcore:41
cn-north-1 arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-dotnetcore:37
cn-northwest-1 arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-dotnetcore:38
eu-central-1 arn:aws:lambda:eu-central-1:410797082306:layer:instana-dotnetcore:40
eu-central-2 arn:aws:lambda:eu-central-2:410797082306:layer:instana-dotnetcore:41
eu-north-1 arn:aws:lambda:eu-north-1:410797082306:layer:instana-dotnetcore:41
eu-south-1 arn:aws:lambda:eu-south-1:410797082306:layer:instana-dotnetcore:41
eu-south-2 arn:aws:lambda:eu-south-2:410797082306:layer:instana-dotnetcore:41
eu-west-1 arn:aws:lambda:eu-west-1:410797082306:layer:instana-dotnetcore:40
eu-west-2 arn:aws:lambda:eu-west-2:410797082306:layer:instana-dotnetcore:41
eu-west-3 arn:aws:lambda:eu-west-3:410797082306:layer:instana-dotnetcore:40
il-central-1 arn:aws:lambda:il-central-1:410797082306:layer:instana-dotnetcore:41
me-central-1 arn:aws:lambda:me-central-1:410797082306:layer:instana-dotnetcore:40
me-south-1 arn:aws:lambda:me-south-1:410797082306:layer:instana-dotnetcore:null
sa-east-1 arn:aws:lambda:sa-east-1:410797082306:layer:instana-dotnetcore:40
us-east-1 arn:aws:lambda:us-east-1:410797082306:layer:instana-dotnetcore:41
us-east-2 arn:aws:lambda:us-east-2:410797082306:layer:instana-dotnetcore:41
us-west-1 arn:aws:lambda:us-west-1:410797082306:layer:instana-dotnetcore:40
us-west-2 arn:aws:lambda:us-west-2:410797082306:layer:instana-dotnetcore:40

例えば、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)
 

パッケージを手動 instana/aws-lambda でインストールする

Instana のLambdaレイヤーを使用する代わりに、 FedRAMP-complaint@instana/aws-lambda 環境では手動でインストールする必要があります。

.NET または .NET Core の Lambda 関数のトレースを有効にするには、以下の手順を実行してください:

  1. Visual Studio の関数プロジェクトに、 Instana と NuGet のパッケージを追加します:

  2. AWS Lambda のUIで、 Instana バックエンドに接続するために、以下の環境変数を設定します:

    環境変数
    CORECLR_ENABLE_PROFILING 1
    CORECLR_PROFILER {cf0d821e-299b-5307-a3d8-b283c03916dd}
    CORECLR_PROFILER_PATH <path to /instana_tracing/CoreProfiler.so file accessible from Lambda>
    DOTNET_STARTUP_HOOKS <path to /Instana.Tracing.Core.dll file accessible from Lambda>
    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>

    お使いのリージョンに対応した、. で始まる正しい Instana エンドポイント( URLhttps://serverless-)を使用していることを確認してください。 詳細については、 「サーバーレス監視のエンドポイント」 を参照してください。

    注: デフォルトのハンドラーが 形式 Assembly::Namespace.ClassName::MethodName を使用していない場合は、デフォルトのハンドラーを 形式 LAMBDA_HANDLER で設定してください。 それ以外の場合は、変数を設定したり、変数を空のままにしたりしないでください。 トレースとインフラストラクチャ・エンティティの関連性を示す相関データが Instana のUIに表示されない場合は、 を使用して LAMBDA_HANDLER 正しい形式を設定してください。

    これらの環境変数の正しい値は、 Instana のUIからも確認できます。 これらの環境変数の正しい値を取得するには、 Instana のUIで、 [More] > [Agents] > [Install Agents ] > [Platform: AWS ] > [Technology: AWS Lambda ] の順にクリックしてください。