Python 用の AWS Lambda ネイティブ・トレース

Instana AWS Lambda トレースは、 Python で記述された AWS Lambda 関数に対して設定できます。

詳細については、 AWS ラムダのトレースを参照してください。

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

  • Python 3.13
  • Python 3.12
  • Python 3.11
  • Python 3.10
  • Python 3.9
注: 2024年10月14日以降、 AWS Lambdaは、Lambda関数で使用される Python 3.8 ランタイムへのセキュリティパッチおよびその他のアップデートの適用を終了します。 Python 3.8 を使用する関数はテクニカルサポートの対象外となり、 Python 3.8 ランタイムを使用する新しいラムダ関数を作成することはできなくなりました。

AWS ラムダ関数の設定

ラムダ関数のトレースを有効にするには、以下の設定オプションのいずれかを使用します:

Instanaラムダ層の使用

AWS ウェブコンソールから Python Lambda 関数のトレースを有効にするには、以下の手順を実行します:

ステップ 1. Instanaラムダレイヤーを関数に追加する

  1. ラムダ関数の設定ページで、 レイヤーボックスをクリックします。
    図 1. ラムダ・レイヤー
    ラムダ・レイヤー
  2. レイヤーボックスの レイヤーを追加をクリックします。
    図 2. 層の追加
    層の追加
  3. 新しいページが開いたら、レイヤーのソースとして ARN オプションを選択します。 地域と一致する Instana Lambda Layer の ARN をコピーして [Specify an ARN] フィールドに貼り付け、[ Add ] をクリックします。 Instana Lambda Layer の正しい ARN は、 Instana Lambda Layers セクションで見つけることができます。
図 3. インスタナ Python レイヤーを追加
インスタナ Python レイヤーを追加

ステップ 2. ラムダ・ハンドラを設定する

ラムダ・ハンドラを instana.lambda_handler に設定する。 ファンクション設定ページで、 ランタイム設定セクションに移動し、 編集をクリックします。

図 4. ランタイム設定の編集
ランタイム設定の編集

ハンドラ・ フィールドに、 instana.lambda_handler を挿入し、 Save をクリックする。

図 5. ランタイム設定の保存
ランタイム設定の保存

カスタムハンドラ値(ランタイムのデフォルトハンドラではなく、前述の詳細を参照)を使用する場合は、環境変数 LAMBDA_HANDLER でハンドラを指定し、Instana ラムダレイヤーに通知します。 例えば、ハンドラーが myModule.myHandler の場合、環境変数 LAMBDA_HANDLERmyModule.myHandler に設定する。 設定が必要なその他の環境変数については、次のセクションを参照のこと。

注: ラムダ設定ページでは、 Lambda can't find the file instana.lambda_handler. のような警告が表示される場合があります。 このメッセージは、後で設定ページに戻ったときに表示することもできます。 ハンドラはInstana Lambdaレイヤーに含まれているため、この警告を無視することができますが、 AWS Lambda設定ページでは考慮されません。

ステップ 3. 環境変数の構成

以下の環境変数を追加します。

  • INSTANA_ENDPOINT_URL: サーバーレス監視のエンドポイント。 該当するリージョン用の、https://serverless- で始まる適切な値を使用していることを確認してください。
  • INSTANA_AGENT_KEY: エージェント・キー
  • LAMBDA_HANDLER:カスタムハンドラ(デフォルトハンドラを使用していない場合) lambda_function.lambda_handler.

これらの環境変数の正しい値は、Instana のインストールでも確認できます。 データソース > エージェントのインストール > AWS ラムダ.

ステップ 4. AWS コマンドラインインターフェイス(CLI)の使用

以下の 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 \
  --handler instana.lambda_handler \
  --environment ""Variables={INSTANA_ENDPOINT_URL=... , INSTANA_AGENT_KEY=... , ...}""

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

Instana Lambda レイヤーを使用する代わりに、Instana Python Tracer パッケージを手動でインストールすることもできます。 このオプションは、 FedRAMP-compliant 環境のような制限された環境に適している。

Python ラムダ関数のトレースを有効にするには、以下の手順を実行します:

  1. Instana Python Tracer パッケージを依存関係として関数プロジェクトに追加します。 [1]
  2. ラムダ・ ハンドラの設定 」セクションの説明に従って、ラムダ・ハンドラを instana.lambda_handler に設定します。
  3. ラムダ関数用に以下の環境変数を設定する:
    • INSTANA_ENDPOINT_URL : サーバーレス監視のエンドポイント。 該当するリージョン用の、https://serverless- で始まる適切な値を使用していることを確認してください。
    • INSTANA_AGENT_KEY : エージェントキー
    • LAMBDA_HANDLER :カスタムハンドラ(デフォルトハンドラを使用していない場合) lambda_function.lambda_handler.

Instana Lambda レイヤー

Python 用の最新バージョンの AWS Lambda レイヤーの ARN は、リージョンごとに以下のとおりです。

リージョン ARN
af-south-1 arn:aws:lambda:af-south-1:410797082306:layer:instana-python:82
ap-east-1 arn:aws:lambda:ap-east-1:410797082306:layer:instana-python:82
ap-northeast-1 arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-python:82
ap-northeast-2 arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-python:82
ap-northeast-3 arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-python:82
ap-south-1 arn:aws:lambda:ap-south-1:410797082306:layer:instana-python:82
ap-south-2 arn:aws:lambda:ap-south-2:410797082306:layer:instana-python:82
ap-southeast-1 arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-python:82
ap-southeast-2 arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-python:82
ap-southeast-3 arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-python:82
ap-southeast-4 arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-python:82
ap-southeast-5 arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-python:82
ap-southeast-7 arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-python:82
ca-central-1 arn:aws:lambda:ca-central-1:410797082306:layer:instana-python:82
ca-west-1 arn:aws:lambda:ca-west-1:410797082306:layer:instana-python:82
cn-north-1 arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-python:82
cn-northwest-1 arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-python:82
eu-central-1 arn:aws:lambda:eu-central-1:410797082306:layer:instana-python:82
eu-central-2 arn:aws:lambda:eu-central-2:410797082306:layer:instana-python:82
eu-north-1 arn:aws:lambda:eu-north-1:410797082306:layer:instana-python:82
eu-south-1 arn:aws:lambda:eu-south-1:410797082306:layer:instana-python:82
eu-south-2 arn:aws:lambda:eu-south-2:410797082306:layer:instana-python:82
eu-west-1 arn:aws:lambda:eu-west-1:410797082306:layer:instana-python:82
eu-west-2 arn:aws:lambda:eu-west-2:410797082306:layer:instana-python:82
eu-west-3 arn:aws:lambda:eu-west-3:410797082306:layer:instana-python:82
il-central-1 arn:aws:lambda:il-central-1:410797082306:layer:instana-python:82
me-central-1 arn:aws:lambda:me-central-1:410797082306:layer:instana-python:82
me-south-1 arn:aws:lambda:me-south-1:410797082306:layer:instana-python:82
sa-east-1 arn:aws:lambda:sa-east-1:410797082306:layer:instana-python:82
us-east-1 arn:aws:lambda:us-east-1:410797082306:layer:instana-python:82
us-east-2 arn:aws:lambda:us-east-2:410797082306:layer:instana-python:82
us-west-1 arn:aws:lambda:us-west-1:410797082306:layer:instana-python:82
us-west-2 arn:aws:lambda:us-west-2:410797082306:layer:instana-python:82

中国語地域のパターンは arn:aws-cn:lambda:${region}:107998019096:layer:instana-python:${layer-version} で、残りの地域のパターンは arn:aws:lambda:${region}:410797082306:layer:instana-python:${layer-version}です。

常に最新バージョンを使用し、使用しているレイヤー・バージョンを定期的に更新してください。これにより、レイヤーの新規バージョンを公開する際に提供される新機能とフィックスのメリットが得られます。

トラブルシューティング

レイヤーの順番がInstanaレイヤーのパフォーマンスに影響する可能性がある

Python Lambda関数に複数のレイヤーを追加する場合、追加の順序がInstanaレイヤーのパフォーマンスに影響します。 Instanaレイヤーが正しくトレースされるように、レイヤーのマージ順の最後の位置(一番大きい番号)に配置します。

図 6. レイヤーのマージ順
レイヤーのマージ順
  1. AWS Lambdaの公式ドキュメントに従って、 依存関係を含む.zipデプロイパッケージを作成してください。