

サポート終了通知: 2026 年 10 月 7 日、 AWS はサポートを終了します AWS IoT Greengrass Version 1。2026 年 10 月 7 日以降、 AWS IoT Greengrass V1 リソースにアクセスできなくなります。詳細については、[「 からの移行 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)」を参照してください。

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

# Lambda 関数の作成と設定
<a name="create-config-lambda"></a>

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

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

1. GitHub の [TrafficLight ](https://github.com/aws/aws-greengrass-core-sdk-python/tree/master/examples/TrafficLight) サンプルフォルダから、`carAggregator.py` ファイルを `car_aggregator` フォルダにダウンロードします。このファイルに、Lambda 関数コードが記述されています。
**注記**  
このサンプル Python ファイルは、便宜上 AWS IoT Greengrass Core SDK リポジトリに保存されますが、 AWS IoT Greengrass Core SDK は使用しません。

1. 米国東部 (バージニア北部) リージョンで作業していない場合は、 を開き`carAggregator.py`、次の行`region_name`で AWS IoT コンソールで現在選択されている AWS リージョン に変更します。サポートされている AWS リージョンのリストについては、 [AWS IoT Greengrass](https://docs.aws.amazon.com/general/latest/gr/greengrass.html)の「」を参照してください*Amazon Web Services 全般のリファレンス*。

   ```
   dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
   ```

1. 次のコマンドを[コマンドライン](https://en.wikipedia.org/wiki/Command-line_interface)ウィンドウで実行し、[AWS SDK for Python (Boto3)](https://github.com/boto/boto3/blob/develop/README.rst) パッケージとその依存関係を `car_aggregator` フォルダにインストールします。Greengrass Lambda 関数は AWS SDK を使用して他の AWS サービスにアクセスします。(Windows の場合は、[昇格されたコマンドプロンプト](https://technet.microsoft.com/en-us/library/cc947813(v=ws.10).aspx)を使用します)。

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

   この結果、ディレクトリの一覧は以下のようになります。  
![\[carAggregator.py を示すディレクトリ一覧のスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/gg-get-started-095.png)

1. `car_aggregator` フォルダの内容を `.zip` ファイルに圧縮し、`car_aggregator.zip` という名前を付けます。(フォルダではなく、フォルダの内容を圧縮します。) これが Lambda 関数デプロイパッケージです。

1. Lambda コンソールで、**GG\$1Car\$1Aggregator** という名前の関数を作成し、残りのフィールドを以下のように設定します。
   + **[ランタイム]** で **[Python 3.7]** を選択します。
   + **[アクセス許可]** はデフォルト設定のままにしておきます。これで Lambda への基本的なアクセス許可を付与する実行ロールが作成されます。このロールは では使用されません AWS IoT Greengrass。

   [**関数の作成**] を選択してください。  
![\[関数名が GG_Car_Aggregator に設定され、ランタイムが Python 3.7 に設定された基本情報セクション。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/gg-get-started-095.5.png)

1. Lambda 関数のデプロイパッケージをアップロードします。

   1. <a name="lambda-console-upload"></a>**[Code]** (コード) タブの **[Code source]** (コードソース) で、**[Upload from]** (アップロード元) を選択します。ドロップダウンから **[.zip ファイル]** を選択します。  
![\[[.zip ファイル] が強調表示された [アップロード元] ドロップダウンリスト。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/lra-console/upload-deployment-package.png)

   1. [Upload] (アップロード) を選択し、`car_aggregator.zip` デプロイパッケージを選択します。次に、**[保存]** を選択します。

   1. <a name="lambda-console-runtime-settings-para"></a>関数の **[Code]** (コード) タブにある **[Runtime settings]** (ランタイム設定) で **[Edit]** (編集) を選択し、次の値を入力します。
      + **[ランタイム]** で **[Python 3.7]** を選択します。
      + **[ハンドラ]** に **carAggregator.function\$1handler** と入力します。

   1. **[保存]** を選択します。

1. Lambda 関数を発行し、**GG\$1CarAggregator** という名前のエイリアスを作成します。詳細な手順については、モジュール 3 (パート 1) の「[Lambda 関数の発行](create-lambda.md#publish-function-version)」ステップと「[エイリアスの作成](create-lambda.md#create-version-alias)」ステップを参照してください。

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

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

   1. **Lambda function** (Lambda 関数) には、**[GG\$1Car\$1Aggregator]** を選択します。

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

   1. **[メモリ制限]** に **64 MB** と入力します。

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

   1. **[Add Lambda function]** (Lambda 関数の追加) を選択します。
**注記**  
以前のモジュールで作成した他の Lambda 関数は削除してかまいません。