Lambda 関数の作成とパッケージ化 - AWS IoT Greengrass

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

Lambda 関数の作成とパッケージ化

このモジュールの Python Lambda 関数の例では、AWS IoT Greengrass Core SDK for Python を使用して MQTT メッセージを発行しています。

このステップでは、次の操作を行います。

  • AWS IoT Greengrass Core SDK for Python を使用するコンピュータ (AWS IoT Greengrass コア デバイスではなく) にダウンロードします。

  • Lambda 関数コードと依存関係を含む関数デプロイパッケージを作成します。

  • Lambda コンソールを使用し、Lambda 関数を作成してデプロイパッケージをアップロードします。

  • Lambda 関数のバージョンを発行し、そのバージョンを指すエイリアスを作成します。

このモジュールを完了するには、Python 3.7 をコアデバイスにインストールする必要があります。

 

  1. AWS IoT Greengrass Core SDK ダウンロード ページから、AWS IoT Greengrass Core SDK for Python をコンピュータにダウンロードします。

  2. ダウンロードしたパッケージを解凍して、Lambda 関数コードおよび SDK を取得します。

    このモジュールの Lambda 関数では、以下を使用します。

    • greengrassHelloWorld.pyファイルexamples\HelloWorld。 これが Lambda 関数コードです。関数は 5 秒ごとに 2 つのメッセージのいずれかを hello/world トピックに発行します。

    • greengrasssdk フォルダ。これは SDK です。

  3. greengrassHelloWorld.py を含む HelloWorld フォルダに greengrasssdk フォルダをコピーします。

  4. Lambda関数デプロイパッケージを作成するには、 greengrassHelloWorld.pygreengrasssdkフォルダを という名前の圧縮zipファイルに保存しますhello_world_python_lambda.zippyファイルとgreengrasssdkフォルダはディレクトリのルートにある必要があります。

    
                            zip 圧縮された hello_word_python_lambda.zip の内容を示すスクリーンショット。

    UNIX 互換システム (Mac のターミナルを含む) では、次のコマンドを使用してファイルとフォルダをパッケージ化できます。

    zip -r hello_world_python_lambda.zip greengrasssdk greengrassHelloWorld.py
    注記

    ディストリビューションによっては、必要に応じて最初に zip をインストールします。そのために、sudo apt-get install zip などを実行します。(インストールコマンドはお客様のディストリビューションと異なる場合があります)。

    これで、Lambda 関数を作成して、デプロイパッケージをアップロードする準備ができました。

  5. Lambda コンソールを開き、[関数の作成] を選択します。

  6. [Author from scratch (一から作成)] を選択します。

  7. 関数に Greengrass_HelloWorld という名前を付け、残りのフィールドを以下のように設定します。

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

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

    [Create function (関数の作成)] を選択します。

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

    1. [設定] タブの [関数コード] で、[ Actions。 ドロップダウンから、[ Upload a .zip file。 次に、 を選択しますhello_world_python_lambda.zip

    2. [Basic settings] ( 基本設定) で、[] を選択します。Edit。 [Edit basic settings (基本設定の編集)] ページで、残りのフィールドを以下のように設定します。

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

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

    3. 選択 Save.

      注記

      AWS Lambda コンソールの [テスト] ボタンは、この機能には使用できません。AWS IoT Greengrass Core SDK には、AWS Lambda コンソールで Greengrass Lambda 関数を個別に実行するために必要なモジュールが含まれていません。これらのモジュール (greengrass_common など) は、Greengrass コアにデプロイされた後で関数に指定されます。

  9. Lambda 関数を発行します。

    1. [アクション] メニューから、[新しいバージョンを発行] を選択します。

    2. [バージョンの説明] に「First version」と入力し、[発行] を選択します。

      
                            [バージョンの説明] フィールドが「First version」に設定され、[発行] ボタンが強調表示されたスクリーンショット。
  10. Lambda 関数バージョンのエイリアスを作成します。

    注記

    Greengrass グループは、Lambda 関数をエイリアス (推奨) またはバージョンで参照できます。エイリアスを使用する方がコード更新の管理が簡単です。関数コードが更新された場合にサブスクリプションテーブルやグループ定義を変更する必要がないためです。代わりに、新しい関数バージョンのエイリアスを指定します。

    1. [アクション] から [エイリアスの作成] を選択します。

      
                            [エイリアスの作成] に設定された [アクション] メニューのスクリーンショット。
    2. エイリアスに GG_HelloWorld という名前を付け、バージョンを 1 (先ほど発行したバージョンに対応) に設定して、[作成] を選択します。

      注記

      AWS IoT Greengrass は、$LATEST バージョンの Lambda エイリアスをサポートしていません。

       

      
                            [名前] フィールドが [GG_HelloWorld]、[バージョン] が [1] に設定され、[作成] ボタンが強調表示された [新しいエイリアスの作成] のスクリーンショット。