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

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

詳細については、 AWS Lambda tracing を参照してください。

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

  • 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 ランタイムを使用する新しい Lambda 関数を作成することはできなくなりました。

AWS Lambda 関数の設定

以下の設定オプションのいずれかを使用することで、Lambda関数のトレースを有効にできます:

  • Instana のLambdaレイヤーの使用 :設定のみによってLambda関数のインストルメンテーションをコードを一切書かずに実現します。 トレースを有効にするには、この方法が推奨されます。
  • パッケージ instana の手動インストール : FedRAMP-compliant 環境などの制限のある環境では、 Instana Python Tracerパッケージを手動でインストールすることができます。

Instana のLambdaレイヤーの使用

AWS のWebコンソールで Python のLambda関数のトレースを有効にするには、以下の手順を実行してください:

ステップ 1. 関数に Instana のLambdaレイヤーを追加する

  1. Lambda 関数の設定ページで、 「レイヤー 」ボックスをクリックします。
    図 1. Lambdaレイヤー
    Lambdaレイヤー
  2. レイヤー 」ボックス内の「レイヤーを追加」をクリックします。
    図 2. 層の追加
    層の追加
  3. 開いた新しいページで、レイヤーのソースとして 「ARNを指定」 オプションを選択します。 「ARNの指定」 フィールドに、お使いのリージョンに対応する Instana Lambda LayerのARNをコピーして貼り付け、 [追加 ]をクリックします。 「 Instana 」Lambdaレイヤーに対応するARNは、 「 Instana 」 の「Lambdaレイヤー」セクションで確認できます。
図 3. Instana の「 Python 」レイヤーを追加
Instana の「 Python 」レイヤーを追加

ステップ 2. Lambdaハンドラーを設定する

Lambdaハンドラーを次のように設定します instana.lambda_handler。 機能設定ページで、 「実行時設定 」セクションに移動し、「 編集 」をクリックします。

図 4. 実行時の設定を編集する
実行時の設定を編集する

[ ハンドラー ] フィールドに「,」 instana.lambda_handlerを入力し、[ ] をクリックします Save

図 5. 実行時の設定を保存する
実行時の設定を保存する

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

注: Lambdaの設定ページに次のような警告が表示 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 のインストール先でも、これらの環境変数の正しい値を確認できます。 Go 「データソース 」> 「エージェントのインストール 」>「 AWS Lambda 」へ。

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

また、以下の AWS 管理ツールのいずれかを使用して、Lambda関数のトレース機能を有効にすることもできます:

以下の例は、 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 のLambda関数のトレースを有効にするには、以下の手順を実行してください:

  1. 関数プロジェクトに、 Instana の Python Tracer パッケージを依存関係として追加します。 [1]
  2. 「Lambdaハンドラーの設定」 のセクションに記載されている手順 instana.lambda_handler に従って、Lambdaハンドラーを設定してください。
  3. Lambda関数に対して、以下の環境変数を設定してください:
    • 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:99
ap-east-1 arn:aws:lambda:ap-east-1:410797082306:layer:instana-python:99
ap-northeast-1 arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-python:99
ap-northeast-2 arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-python:99
ap-northeast-3 arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-python:99
ap-south-1 arn:aws:lambda:ap-south-1:410797082306:layer:instana-python:99
ap-south-2 arn:aws:lambda:ap-south-2:410797082306:layer:instana-python:99
ap-southeast-1 arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-python:99
ap-southeast-2 arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-python:99
ap-southeast-3 arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-python:99
ap-southeast-4 arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-python:99
ap-southeast-5 arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-python:99
ap-southeast-7 arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-python:99
ca-central-1 arn:aws:lambda:ca-central-1:410797082306:layer:instana-python:99
ca-west-1 arn:aws:lambda:ca-west-1:410797082306:layer:instana-python:99
cn-north-1 arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-python:99
cn-northwest-1 arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-python:99
eu-central-1 arn:aws:lambda:eu-central-1:410797082306:layer:instana-python:99
eu-central-2 arn:aws:lambda:eu-central-2:410797082306:layer:instana-python:99
eu-north-1 arn:aws:lambda:eu-north-1:410797082306:layer:instana-python:99
eu-south-1 arn:aws:lambda:eu-south-1:410797082306:layer:instana-python:99
eu-south-2 arn:aws:lambda:eu-south-2:410797082306:layer:instana-python:99
eu-west-1 arn:aws:lambda:eu-west-1:410797082306:layer:instana-python:99
eu-west-2 arn:aws:lambda:eu-west-2:410797082306:layer:instana-python:99
eu-west-3 arn:aws:lambda:eu-west-3:410797082306:layer:instana-python:99
il-central-1 arn:aws:lambda:il-central-1:410797082306:layer:instana-python:99
me-central-1 arn:aws:lambda:me-central-1:410797082306:layer:instana-python:99
me-south-1 arn:aws:lambda:me-south-1:410797082306:layer:instana-python:null
sa-east-1 arn:aws:lambda:sa-east-1:410797082306:layer:instana-python:99
us-east-1 arn:aws:lambda:us-east-1:410797082306:layer:instana-python:99
us-east-2 arn:aws:lambda:us-east-2:410797082306:layer:instana-python:99
us-west-1 arn:aws:lambda:us-west-1:410797082306:layer:instana-python:99
us-west-2 arn:aws:lambda:us-west-2:410797082306:layer:instana-python:99

中国語地域のパターンは 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形式のデプロイメントパッケージを作成してください。↩︎