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

のドキュメントを表示していますAWS IoT Greengrass Version 1。AWS IoT Greengrass Version 2の最新のメジャーバージョンです。AWS IoT Greengrass。の使用方法の詳細については、「」を参照してください。AWS IoT Greengrass V2の詳細については、AWS IoT Greengrass Version 2開発者ガイド

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

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

このモジュールの Python Lambda 関数の例では、AWS IoT GreengrassCore SDKfor Python は MQTT メッセージを発行します。

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

  • のダウンロードAWS IoT GreengrassPython for Python Core SDK をコンピュータ (AWS IoT Greengrassコアデバイス)。

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

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

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

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

 

  1. からへAWS IoT GreengrassCore SDKダウンロードページでは、AWS IoT GreengrassPython用のコアSDKをコンピュータにインストールします。

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

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

    • examples\HelloWorldgreengrassHelloWorld.py ファイル。これは使用する 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. [一から作成] を選択します。

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

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

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

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

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

    1. リポジトリの []コードタブにあるコードソース] で、[以下の対象からのアップロード。ドロップダウンから、.zip ファイル

      
                [アップロード元] ドロップダウンで、.zip ファイルがハイライト表示されます。
    2. 選択アップロードを選択し、[hello_world_python_lambda.zipデプロイパッケージを使用します。次に、[Save] を選択します。

    3. リポジトリの []コード] タブの [[ランタイム設定]] で、[編集次に、以下の値を入力します。

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

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

      
                                    「ランタイム」フィールドが「Python 3.7」に設定され、「ハンドラー」フィールドが「GreengrassShelloWorld.function_Handler」に設定された「ランタイム設定」セクション。
    4. [Save] を選択します。

      注記

      -Test] ボタンをクリックします。AWS Lambdaコンソールは、この機能では機能しません。-AWS IoT GreengrassコアSDKには、Greengrass Lambda 関数を独立して実行するために必要なモジュールは含まれていませんAWS Lambdaconsole. これらのモジュール (たとえば、greengrass_common) は、Greengrass コアにデプロイされた後に関数に供給されます。

  9. Lambda 関数を公開します。

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

      
                                    [新しいバージョンを発行] が強調表示された [アクション] メニューのスクリーンショット。
    2. [バージョンの説明] に「First version」と入力し、[発行] を選択します。

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

    注記

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

    1. からへアクションメニューで、[] を選択します。エイリアスの作成

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

      注記

      AWS IoT Greengrassでは、Lambda エイリアスはサポートされません。$LATESTバージョン。

       

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