IoT Edge モジュールの技術アセットの準備Prepare your IoT Edge module technical assets

この記事では、Azure Marketplace で公開する前にモノのインターネット (IoT) Edge モジュールの技術アセットが満たす必要のある要件について説明します。This article describes the requirements that your Internet of Things (IoT) Edge module technical assets must meet before being published in Azure Marketplace.

はじめにGet started

IoT Edge モジュールは、IoT Edge デバイスで実行する Docker 互換コンテナーです。An IoT Edge module is a Docker-compatible container that runs on an IoT Edge device.

技術的な要件Technical requirements

IoT Edge モジュールが認定され Azure Marketplace で公開できるようにするには、次の技術的な要件を満たす必要があります。Your IoT Edge module must meet the following technical requirements to be certified and published in Azure Marketplace.

プラットフォームのサポートPlatform support

IoT Edge モジュールは、次のプラットフォーム オプションのいずれかをサポートする必要があります。Your IoT Edge module must support one of the following platform options:

IoT Edge によってサポートされるレベル 1 プラットフォームTier 1 platforms supported by IoT Edge

IoT Edge でサポートされているすべてのレベル 1 プラットフォーム (Azure IoT Edge サポートに記録されているもの) をサポートしなくてはなりません。Your module must support all Tier 1 platforms supported by IoT Edge (as recorded in Azure IoT Edge support). より良いカスタマー エクスペリエンスを提供するため、このオプションをお勧めします。We recommend this option because it provides a better customer experience. この基準を満たすモジュールが紹介されます。Modules that meet this criteria will be showcased. このプラットフォーム オプションを使用するモジュールは、以下のことが必要です。A module using this platform option must:

IoT Edge によってサポートされるレベル 1 プラットフォームのサブセットA subset of Tier 1 platforms supported by IoT Edge

お使いになっているモジュールは、IoT Edge でサポートされているレベル 1 のプラットフォーム (Azure IoT Edge サポートに記録されているもの) のサブセットを少なくとも 1 つサポートする必要があります。Your module must support a subset (at least one) of Tier 1 platforms supported by IoT Edge (as recorded in Azure IoT Edge support). このプラットフォーム オプションを使用するモジュールは、以下のことが必要です。A module using this platform option must:

  • 複数のプラットフォームがサポートされている場合は、GitHub の manifest-tool でビルドされたマニフェスト タグである最新のタグとバージョン タグ (1.0.1 など) を指定します。Provide a latest tag and a version tag (for example, 1.0.1) that are manifest tags built with the GitHub manifest-tool if more than one platform is supported. マニフェスト タグは、1 つのプラットフォームのみがサポートされている場合は省略できます。Manifest tags are optional only when one platform is supported.
  • パートナー センターでオファーの一覧タブを使用し、「有用なリンク」セクションのリンクを Azure IoT Edge 認定デバイス カタログから少なくとも 1 つの IoT Edge デバイスに追加します。Use the offer listing tab in Partner Center to add a link under the Useful links section to at least one IoT Edge device from the Azure IoT Edge Certified device catalog.

これは、パートナー センター内の「オファーの一覧」セクションのイメージです

デバイスのサイズDevice dimensions

対象の IoT Edge デバイス上の IoT Edge モジュールのサイズ (CPU、RAM、ストレージ、GPU など) は、次の要件を満たす必要があります。IoT Edge module dimensions (such as CPU, RAM, storage, and GPU) on targeted IoT Edge devices must meet the following requirements:

  • モジュールは、Azure IoT Edge 認定デバイス カタログから少なくとも 1 つの IoT Edge デバイスで動作する必要があります。The module must work with at least one IoT Edge device from the Azure IoT Edge Certified device catalog.

  • ハードウェアの最低要件をオファーの説明の最後の段落に記載する必要があります (パートナー センターのオファーの一覧タブ)。The minimum hardware requirements must be documented as the last paragraph in the description of the offer (under the offer listing tab in Partner Center). 必要に応じて、推奨されるハードウェア要件が大幅に異なる場合は、要件を一覧にすることもできます。Optionally, you can also list the recommended hardware requirements if they differ significantly. たとえば、プランの説明の最後に次のセクションを追加します。For example, add the following section at the end of your offer description:

この HTML テキストをコピーするか、該当するリッチ テキスト関数を編集ウィンドウで使用します。Copy this HTML text or use the corresponding rich text functions in the editing window.

<p><u>Minimum hardware requirements:</u> Linux x64 and arm32 OS, 1GB of RAM, 500 Mb of storage</p>

構成Configuration

モジュールには、IoT Edge デバイスへのデプロイをできるだけ簡単にするための既定の構成設定を含める必要があります。Your module must include default configuration settings to make the deployment to an IoT Edge device as straightforward as possible. この情報は、パートナー センターのプランの「技術的構成」ページで指定できます。This information can be provided in the Technical configuration page for the plan in Partner Center. コンテナーには、edgeHub や IoT Hub と通信できるようにするため、IoT Edge モジュール SDK が含まれることもあります。The container may also include the IoT Edge Module SDK to enable communication with the edge Hub and IoT Hub.

既定の構成Default configuration

IoT Edge モジュールは、パートナー センターの計画の「技術的構成」ページで指定された既定の設定で開始できなくてはなりません。IoT Edge modules must be able to start with the default settings provided in the Technical configuration page for the plan in Partner Center. 次の既定の設定を使用できます。The following default settings are available:

  • 既定のルートDefault routes
  • 既定のモジュール ツインの必要なプロパティDefault module twin desired properties
  • 既定の環境変数Default environment variables
  • 既定のコンテナー作成オプションDefault container create options

既定値に必要なパラメーターでは意味をなさないシナリオでは (たとえば、顧客のサーバーの IP アドレスなど)、既定値としてパラメーターを追加します。In a scenario where a parameter that's required for a default value doesn't make sense (for example, the IP address of a customer's server), add a parameter as the default value. この値は大文字で表記し、角かっこで囲みます。This value is upper case and enclosed in brackets. この例では、次の既定の環境変数を設定します。For this example, you'd set up the following default environment variable:

ServerIPAddress = <MY_SERVER_IP_ADDRESS>

構成に関するドキュメントConfiguration documentation

IoT Edge モジュールのすべての構成設定を明確に文書化する必要があります。All configuration settings of an IoT Edge module must be clearly documented. たとえば、ルート、ツインが必要なプロパティ、環境変数、createOptions などを使用する方法を文書化する必要があります。For example, you must document how to use its routes, twin desired properties, environment variables, createOptions, and so on. ドキュメントへのリンクを指定するか、ドキュメントをオファーまたはプランの説明の一部に含める必要があります。You must either provide a link to your documentation or make it part of your offer or plan description. この情報は、パートナー センターオファーの一覧計画の一覧ページに記載できます。You can provide this information in the Offer listing and Plan listing page in Partner Center.

タグとバージョン管理Tags and versioning

お客様はモジュールを簡単にデプロイし、マーケットプレースから (開発者シナリオで) 更新プログラムを自動的に取得できなくてはなりません。Customers must be able to easily deploy a module and automatically get updates from the marketplace (in a developer scenario). また、(運用環境シナリオで) テスト済みのバージョンを使用して凍結できる必要もあります。They also must be able to use and freeze an exact version they've tested (in a production scenario).

お客様のこれらの期待に応え、マーケットプレースに公開できるようにするために、IoT Edge モジュールは次の要件を満たす必要がありますTo meet these customer expectations and be published in the marketplace, IoT Edge modules must meet the following requirements

  • サポートされているすべてのプラットフォームの最新バージョンを参照するマニフェストの最新タグを含めます。Include a manifest latest tag that points to the latest version on all supported platforms.
  • バージョン タグを X.Y.Z 形式にします (X、Y、Z は整数)。Make version tags in the form X.Y.Z, where X, Y, and Z are integers.
  • サポートされているすべてのプラットフォームで特定のバージョンを参照する「バージョン」タグ (1.0.1 など) を含めます。Include a "version" tag, such as 1.0.1, that points to a specific version on all supported platforms.
  • 「バージョン」タグ (1.0.1 など) は変更する必要がないため、更新しないでください。Don't update "version" tags, such as 1.0.1, because they must not be changed.

注意

必要に応じて、2.0 や 1.0 といった「ローリング バージョン」タグを含めることができます。Optionally, versioning can include "rolling version" tags, such as 2.0 and 1.0. これは、複数のメジャー バージョンの並列管理をサポートします。This supports maintaining multiple major versions in parallel.

テレメトリTelemetry

IoT Module SDK を使用するモジュールは、テレメトリ目的で一意のモジュール識別子を PublisherId.OfferId.SkuId に設定する必要があります。Modules using the IoT Module SDK must set the unique module identifier to PublisherId.OfferId.SkuId for telemetry purposes. 一意の識別子により、Azure Marketplace では、実行されているモジュール インスタンスの数を識別できます。A unique identifier helps Azure Marketplace identify the number of module instances that are running.

IoT Module SDK から次の方法のいずれかを使用して、ProductInfo をこの識別子に設定します。Use one of the following methods from the IoT Module SDKs to set the ProductInfo to this identifier:

IoT Module SDK を使用していないモジュールでは、ダウンロード数などパートナー センターを通して入手できる分析情報の精度が低くなります。For modules that don't use the IoT Module SDK, less precise insights are available through Partner Center, such as the number of downloads.

SecuritySecurity

IoT Edge モジュールは、特権モジュールを避ける必要があります。IoT Edge modules must avoid privileged modules. その代わり、ホストに対する特権アクセスは最小限にするよう要請します。Instead ask for the least privileged access to the host as possible.

Module IoT SDKModule IoT SDK

Module IoT SDK の同梱は、認定の前提条件ではありません。Including the IoT Module SDK isn't a prerequisite for certification. ただし、IoT モジュールの SDK を含めると、優れたユーザー エクスペリエンスを提供できる場合があります。However, including the IoT Module SDK may provide a better user experience. たとえば、ルーティングやクラウドへのメッセージ送信などをサポートできます。For example, to support routing or sending messages to the Cloud.

IoT Module SDK は、実行中のモジュール インスタンスの数に関するテレメトリ データを取得するために必要です。The IoT Module SDK is required to get telemetry data about the number of module instances that are running.

再認定プロセスRecertification process

以下のようなモジュールに影響する破壊的変更があったときはパートナーに通知されます。Partners are notified whenever there's a breaking change that affects their modules, such as:

  • IoT Edge でサポートされるレベル 1 の OS/arch サポート マトリックスTier 1 OS/arch support matrix supported by IoT Edge
  • IoT Module SDKIoT Module SDK
  • IoT Edge ランタイムIoT Edge runtime
  • IoT Edge モジュール認定ガイドラインIoT Edge module certification guidelines

パートナーは、パートナー センターで再公開することによって、オファーを更新して再認定する必要があります。Partners must update and recertify their offers by re-publishing them in Partner Center.

また、オファーを更新すると再認定されます (新しいイメージ タグの追加など)。Your offer will also be recertified if you update it, such as adding new image tags.

Azure Container Registry でモジュールをホストするHost module in Azure Container Registry

IoT Edge モジュールを Azure Marketplace にアップロードするには、まず、これを Azure Container Registry (ACR) でホストする必要があります。To upload your IoT Edge module to Azure Marketplace, you first need to host it in an Azure Container Registry (ACR). モジュールには、マニフェスト タグによって参照されるイメージ タグなど、発行するすべてのタグを含める必要があります。The module must include all the tags that you want to publish, including the image tags that are referenced by a manifest tag. 詳細については、「Azure コンテナー レジストリを作成してコンテナー イメージをプッシュする」チュートリアルを参照してください。For more information, see the tutorial Create an Azure container registry and push a container image.

次のステップNext steps