Lambda 関数の作成と設定 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 は 2023 年 6 月 30 日に延長ライフフェーズに参加しました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日以降、 AWS IoT Greengrass V1 は機能、機能強化、バグ修正、またはセキュリティパッチを提供する更新をリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き動作し、クラウドに接続します。に移行することを強くお勧めします。 AWS IoT Greengrass Version 2これにより、重要な新機能が追加され、プラットフォーム のサポートが追加されます

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Lambda 関数の作成と設定

このステップでは、信号を通過する車の台数を追跡する Lambda 関数を作成します。GG_TrafficLight のシャドウステータスが G に変わるたびに、Lambda 関数は乱数化された車の数 (1〜20) の通過をシミュレートします。G ライトが 3 回変わるたびに、最小値や最大値などの基本的な統計情報が Lambda 関数から DynamoDB テーブルに送信されます。

  1. コンピュータに car_aggregator という名前のフォルダを作成します。

  2. GitHub の TrafficLight サンプルフォルダから、carAggregator.py ファイルを car_aggregator フォルダにダウンロードします。このファイルに、Lambda 関数コードが記述されています。

    注記

    このサンプル Python ファイルは、便宜上 AWS IoT Greengrass Core SDK リポジトリに格納されますが、AWS IoT Greengrass Core SDK については使用しません。

  3. 米国東部 (バージニア北部) リージョンで作業していない場合は、carAggregator.py を開き、以下の行の region_name を AWS IoT コンソールで現在選択されている AWS リージョンに変更します。サポートされている AWS リージョン のリストについては、「Amazon Web Services 全般のリファレンス」の「AWS IoT Greengrass」を参照してください。

    dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
  4. 次のコマンドをコマンドラインウィンドウで実行し、AWS SDK for Python (Boto3) パッケージとその依存関係を car_aggregator フォルダにインストールします。Greengrass の Lambda 関数では、AWS SDK を使用して AWS の他のサービスにアクセスします。(Windows の場合は、昇格されたコマンドプロンプトを使用します)。

    pip install boto3 -t path-to-car_aggregator-folder

    この結果、ディレクトリの一覧は以下のようになります。

    carAggregator.py を示すディレクトリ一覧のスクリーンショット。
  5. car_aggregator フォルダの内容を .zip ファイルに圧縮し、car_aggregator.zip という名前を付けます。(フォルダではなく、フォルダの内容を圧縮します。) これが Lambda 関数デプロイパッケージです。

  6. Lambda コンソールで、GG_Car_Aggregator という名前の関数を作成し、残りのフィールドを以下のように設定します。

    • [Runtime (ランタイム)] で [Python 3.7] を選択します。

    • [Permissions] (アクセス許可) はデフォルト設定のままにしておきます。これで Lambda への基本的なアクセス許可を付与する実行ロールが作成されます。このロールは、AWS IoT Greengrass によっては使用されません。

    [機能の作成]を選択します。

    関数名が GG_Car_Aggregator に設定され、ランタイムが Python 3.7 に設定された基本情報セクション。
  7. Lambda 関数のデプロイパッケージをアップロードします。

    1. [Code] (コード) タブの [Code source] (コードソース) で、[Upload from] (アップロード元) を選択します。ドロップダウンから [.zip file] (.zip ファイル) を選択します。

      [.zip file] (.zip ファイル) が強調表示された [Upload from] (アップロード元) ドロップダウンリスト。
    2. [Upload] (アップロード) を選択し、car_aggregator.zip デプロイパッケージを選択します。次に、保存を選択します。

    3. 関数の [Code] (コード) タブにある [Runtime settings] (ランタイム設定) で [Edit] (編集) を選択し、次の値を入力します。

      • [Runtime (ランタイム)] で [Python 3.7] を選択します。

      • [ハンドラ] に「carAggregator.function_handler」と入力します。

    4. [Save (保存)] を選択します。

  8. Lambda 関数を発行し、GG_CarAggregator という名前のエイリアスを作成します。詳細な手順については、モジュール 3 (パート 1) の「Lambda 関数の発行」ステップと「エイリアスの作成」ステップを参照してください。

  9. AWS IoT コンソールで、先ほど作成した Lambda 関数を AWS IoT Greengrass グループに追加します。

    1. グループ設定ページで、[Lambda functions] (Lambda 関数) を選択し、[My Lambda functions] (自分の Lambda 関数) で、[Add] (追加)を選択します。

    2. Lambda function (Lambda 関数) には、[GG_Car_Aggregator] を選択します。

    3. Lambda 関数のバージョンで、公開したバージョンのエイリアスを選択します。

    4. [メモリ制限] に「64 MB」と入力します。

    5. [Pinned] (固定) で、[True] を選択します。

    6. [Add Lambda function] (Lambda 関数の追加) を選択します。

    注記

    以前のモジュールで作成した他の Lambda 関数は削除してかまいません。