AWS Snowball Edge で AWS Lambda の使用 - AWS Snowball Edge デベロッパーガイド

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

AWS Snowball Edge で AWS Lambda の使用

AWS IoT Greengrass 対応の AWS Lambda は、サーバーレスコード (Lambda 関数) を Snowball Edge デバイスでローカルに実行できるようにするコンピューティングサービスです。Lambda を使用すると、Message Queuing Telemetry Transport (MQTT) メッセージを使用して Snowball Edge デバイスで Lambda 関数を呼び出したり、Lambda 関数で Python コードを実行したり、その関数を使用してクラウドのパブリック AWS サービスエンドポイントを呼び出したりできます。Snowball Edge デバイスで Lambda 関数を使用するには、AWS IoT Greengrass でサポートされる AWS リージョン で Snowball Edge ジョブを作成する必要があります。有効な AWS リージョン のリストについては、「AWS 全般のリファレンス」の「AWS IoT Greengrass」を参照してください。Lambda on Snowball Edge は、Lambda と Snowball Edge デバイスを利用可能なリージョンで使用できます。

注記

各関数に最小推奨値である 128 MB のメモリを割り当てた場合、1 つのジョブに最大 7 つの Lambda 関数を使用することができます。

開始する前に

Snowball Edge で実行する Python 言語の Lambda 関数を作成する前に、次のサービス、概念、関連トピックを十分に理解しておくことをお勧めします。

AWS IoT Greengrass の前提条件

AWS IoT Greengrass は、AWS クラウド の機能をローカルデバイスに拡張するソフトウェアです。AWS IoT Greengrass により、ローカルデバイスがローカルネットワーク上で相互に安全に通信しながら、情報のソースに近いデータを収集して分析できます。具体的には、AWS IoT Greengrass を使用するデベロッパーは、AWS クラウド でサーバーレスコード (Lambda 関数) を作成できます。そして開発者は簡単にこのコードをデバイスにデプロイし、ローカルでアプリケーションを実行できます。

Snowball Edge で AWS IoT Greengrass を使用する際には、以下の AWS IoT Greengrass の概念を理解していることが重要です。

  • AWS IoT Greengrass の要件 – AWS IoT Greengrass の要件の詳細なリストについては、「AWS IoT Greengrass Version 2 デベロッパーガイド」の「要件」を参照してください。

  • AWS IoT Greengrass コア – AWS IoT Greengrass コアソフトウェアをダウンロードし、デバイス上で実行されている EC2 インスタンスにインストールします。本ガイドの「Using AWS IoT Greengrass on Amazon EC2 instances」を参照してください。

    Snowball Edge デバイスで Lambda 関数を使用するには、まずデバイスの Amazon EC2 インスタンスに AWS IoT Greengrass コアソフトウェアをインストールする必要があります。Snowball Edge デバイスで使用する予定の Lambda 関数は、Snowball Edge デバイスへの AWS IoT Greengrass のインストールで使用するアカウントで作成する必要があります。Snowball Edge デバイスへの AWS IoT Greengrass のインストールに関する詳細については、「AWS IoT Greengrass を使用して、Amazon EC2 互換インスタンスでプリインストールされたソフトウェアを実行する」を参照してください。

  • AWS IoT Greengrass グループ – Snowball Edge デバイスは、グループのコアデバイスとしての AWS IoT Greengrass グループの一部です。グループの詳細については、「AWS IoT Greengrass デベロッパーガイド」の「AWS Greengrass IoT Groups」を参照してください。

  • MQTT - AWS IoT Greengrass は業界標準の軽量 MQTT プロトコルを使用して、グループ内の通信を行います。AWS IoT Greengrass グループ内で MQTT と互換性のあるすべてのデバイスまたはソフトウェアが MQTT メッセージを呼び出すことができます。関連する MQTT メッセージが関数を呼び出すように指定した場合、これらのメッセージで Lambda 関数を呼び出すことができます。

AWS Lambda の前提条件

AWS Lambda は、サーバーをプロビジョニングまたは管理せずにコードを実行できるようにするコンピューティングサービスです。Snowball Edge で Lambda を使用する際には、以下の Lambda 概念を理解していることが重要です。

  • Lambda 関数 - Lambda にアップロードされ、公開されるカスタムコードで、Snowball Edge で使用されます。詳細については、AWS Lambda デベロッパーガイドLambda 関数を参照してください。

  • Lambda コンソール – Snowball Edge で使用する Python 言語 Lambda 関数をアップロード、更新、発行するコンソール。Lambda コンソールの詳細については、「AWS Lambda デベロッパーガイド」の「Lambda コンソール」を参照してください。

  • Python – Snowball Edge の AWS IoT Greengrass で動作する Lambda 関数で使用される高水準プログラミング言語。AWS IoT Greengrass は Python バージョン 3.8.x をサポートします。

Snowball Edge デバイスに Lambda 関数をデプロイする

AWS IoT Greengrass グループ内の Snowball Edge デバイスで Lambda 関数を実行するには、関数をコンポーネントとしてインポートします。AWS IoT Greengrass コンソールを使用して関数をコンポーネントとしてインポートする方法の詳細については、「AWS IoT Greengrass Version 2 デベロッパーガイド」の「Lambda 関数をコンポーネントとしてインポートする (コンソール)」を参照してください。

  1. AWS IoT コンソールの [Greengrass コンポーネント] ページで [コンポーネントを作成] を選択します。

  2. [コンポーネントソース] で、[Lambda 関数をインポート] を選択します。[Lambda 関数] で Lambda 関数の名前を選択します。[Lambda 関数バージョン] で、関数のバージョンを選択します。

  3. アクションの対象となるメッセージに関数をサブスクライブするには、[イベントソースを追加] を選択し、イベントを選択します。[タイムアウト (秒)] に、タイムアウト時間を秒単位で入力します。

  4. [固定] で、関数を固定するかどうかを選択します。

  5. [コンポーネントを作成] を選択します。

  6. [デプロイ] をクリックします。

  7. [デプロイ][既存のデプロイに追加] を選択し、Greengrass グループを選択します。[Next] (次へ) をクリックします。

  8. [パブリックコンポーネント] で、以下のコンポーネントを選択します。

    • aws.greengrass.Cli

    • aws.greengrass.LambdaLauncher

    • aws.greengrass.LambdaManager

    • aws.greengrass.LambdaRuntimes

    • aws.greengrass.Nucleus

  9. [デプロイ] をクリックします。