株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

Sam CLIを使ってPython3.9のアプリを作っているとします。
また、Imageベースで構成します。

まず、コード側の仕込み。

ptvsdをSamのイメージ内にインストールします。

requirements.txt

requests
ptvsd

app.pyのimport文の続きに以下のデバッガを待機する設定を入れます。

import json
import ptvsd
ptvsd.enable_attach(address=('0.0.0.0', 5858), redirect_output=True)
ptvsd.wait_for_attach()

これでコード側の準備はOK。

拡張機能のAWSToolKitをインストールします。

左ペインの「実行とデバッグ」の中にある、歯車マークをクリックして、launch.jsonを設定します。

自動的に生成してくれるかもしれないけど、これで行けた。

{
    // 可能性のある属性については、IntelliSense を活用してください。
    // 既存の属性の説明を表示するには、ホバーします。
    // 詳細については、次の URL を参照してください。https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        {
            "name": "Debug with SAM CLI (Remote Debug)",
            "type": "python",
            "request": "attach",
            "port": 5858,
            "host":  "localhost",
            "pathMappings": [
                {
                "localRoot": "${workspaceFolder}/hello_world",
                "remoteRoot" : "/var/task"
                }
            ]
        }
    ]
}

これで、準備OK。

では、デバッグしていきます。

コード内に、ブレークポイントを設定します。

ビルドして、5858をリモートデバッグポートに指定して起動します。
そうすると、CLIからはLambda関数の最初の部分でストップしているように見えているはず。

sam build
sam local invoke -d 5858

VSCodeのデバッグメニューから「▶️」をクリックすると、実行中のLambdaに対してデバッグ実行できるようになります。

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)