IoT Edge 上の Azure Blob Storage を使用してエッジにデータを格納するStore data at the edge with Azure Blob Storage on IoT Edge

IoT Edge の Azure Blob Storage では、エッジでブロック BLOB および追加 BLOB ストレージのソリューションが提供されます。Azure Blob Storage on IoT Edge provides a block blob and append blob storage solution at the edge. ご利用の IoT Edge デバイス上の BLOB ストレージ モジュールは Azure の BLOB サービスのように動作しますが、その BLOB はご利用の IoT Edge デバイス上でローカルに格納されます。A blob storage module on your IoT Edge device behaves like an Azure blob service, except the blobs are stored locally on your IoT Edge device. 同じ Azure Storage SDK メソッドまたは既に慣れている BLOB API 呼び出しを使用して、ご自分の BLOB にアクセスできます。You can access your blobs using the same Azure storage SDK methods or blob API calls that you're already used to. この記事では、ご利用の IoT Edge デバイス上で Blob service を実行する IoT Edge コンテナー上の Azure Blob Storage に関連する概念について説明します。This article explains the concepts related to Azure Blob Storage on IoT Edge container that runs a blob service on your IoT Edge device.

このモジュールは、次のシナリオで役立ちます。This module is useful in scenarios:

  • データを処理するかクラウドに転送できる状態になるまでデータをローカルに格納する必要のある場合。where data needs to be stored locally until it can be processed or transferred to the cloud. そうしたデータには、動画、画像、ファイナンス データ、病院データなど、あらゆる非構造化データが考えられます。This data can be videos, images, finance data, hospital data, or any other unstructured data.
  • 接続が制限されている場所にデバイスが配置されている場合。when devices are located in a place with limited connectivity.
  • 緊急事態にできるだけ迅速に対応できるように、データをローカルで効率的に処理し、データに短い待機時間でアクセスしたい場合。when you want to efficiently process the data locally to get low latency access to the data, such that you can respond to emergencies as quickly as possible.
  • 帯域幅のコストを削減し、テラバイト単位のデータをクラウドに転送しないようにする場合。when you want to reduce bandwidth costs and avoid transferring terabytes of data to the cloud. データをローカルで処理し、処理されたデータのみをクラウドに送信することができます。You can process the data locally and send only the processed data to the cloud.

概要紹介のビデオを見るWatch the video for quick introduction

このモジュールには、deviceToCloudUpload 機能と deviceAutoDelete 機能が付属しています。This module comes with deviceToCloudUpload and deviceAutoDelete features.

deviceToCloudUpload は構成可能な機能です。deviceToCloudUpload is a configurable functionality. この機能は、断続的なインターネット接続のサポートによりローカルの Blob Storage から Azure にデータを自動的にアップロードすることができます。This function automatically uploads the data from your local blob storage to Azure with intermittent internet connectivity support. これにより次の操作を行うことができます。It allows you to:

  • deviceToCloudUpload 機能のオン/オフを切り替える。Turn ON/OFF the deviceToCloudUpload feature.
  • データを Azure にコピーする順序 (NewestFirst や OldestFirst など) を選択する。Choose the order in which the data is copied to Azure like NewestFirst or OldestFirst.
  • データのアップロード先の Azure Storage アカウントを選択する。Specify the Azure Storage account to which you want your data uploaded.
  • Azure にアップロードするコンテナーを指定する。Specify the containers you want to upload to Azure. このモジュールでは、ソースとターゲットの両方のコンテナー名を指定できます。This module allows you to specify both source and target container names.
  • クラウド ストレージへのアップロードが完了した後ですぐに BLOB を削除する機能を選択するChoose the ability to delete the blobs immediately, after upload to cloud storage is finished
  • 完全な BLOB アップロード (Put Blob 操作を使用) とブロック レベルのアップロード (Put BlockPut Block List、および Append Block 操作を使用) を行う。Do full blob upload (using Put Blob operation) and block level upload (using Put Block, Put Block List and Append Block operations).

このモジュールは、BLOB がブロックで構成されている場合、ブロック レベルのアップロードを使用します。This module uses block level upload, when your blob consists of blocks. 一般的なシナリオのいくつかを次に示します。Here are some of the common scenarios:

  • アプリケーションにより、以前にアップロードしたブロック BLOB のいくつかのブロックが更新されるか、追加 BLOB に新しいブロックが追加されると、このモジュールでは、BLOB 全体ではなく更新されたブロックのみがアップロードされます。Your application updates some blocks of a previously uploaded block blob or appends new blocks to an append blob, this module uploads only the updated blocks and not the whole blob.
  • BLOB のアップロード中にインターネット接続がなくなると、接続が戻ったときに、BLOB 全体ではなく残りのブロックのみアップロードされます。The module is uploading blob and internet connection goes away, when the connectivity is back again it uploads only the remaining blocks and not the whole blob.

BLOB のアップロード中に予期しないプロセスの終了 (電源障害など) が発生すると、モジュールがオンラインに戻ったときに、アップロード予定だったすべてのブロックが再度アップロードされます。If an unexpected process termination (like power failure) happens during a blob upload, all blocks that were due for the upload will be uploaded again once the module comes back online.

deviceAutoDelete は構成可能な機能です。deviceAutoDelete is a configurable functionality. この機能では、指定した期限 (分単位) が過ぎると、モジュールによって BLOB がローカル ストレージから自動的に削除されます。This function automatically deletes your blobs from the local storage when the specified duration (measured in minutes) expires. これにより次の操作を行うことができます。It allows you to:

  • deviceAutoDelete 機能のオン/オフを切り替える。Turn ON/OFF the deviceAutoDelete feature.
  • BLOB が自動的に削除されるまでの分単位の時間 (deleteAfterMinutes) を指定する。Specify the time in minutes (deleteAfterMinutes) after which the blobs will be automatically deleted.
  • deleteAfterMinutes 値が期限切れになった場合に、アップロード中は BLOB を保持する機能を選択する。Choose the ability to retain the blob while it's uploading if the deleteAfterMinutes value expires.

前提条件Prerequisites

Azure IoT Edge デバイス:An Azure IoT Edge device:

  • Linux デバイス または Windows デバイスのクイック スタートに記載された手順に従って、開発マシンまたは仮想マシンを IoT Edge デバイスとして使用できます。You can use your development machine or a virtual machine as an IoT Edge device by following the steps in the quickstart for Linux or Windows devices.

  • サポートされているオペレーティング システムおよびアーキテクチャの一覧については、「Azure IoT Edge のサポートされるシステム」を参照してください。Refer to Azure IoT Edge supported systems for a list of supported operating systems and architectures. IoT Edge モジュールの Azure Blob Storage では、次のアーキテクチャがサポートされます。The Azure Blob Storage on IoT Edge module supports following architectures:

    • Windows AMD64Windows AMD64
    • Linux AMD64Linux AMD64
    • Linux ARM32Linux ARM32
    • Linux ARM64 (プレビュー)Linux ARM64 (preview)

クラウド リソース:Cloud resources:

Azure の Standard レベルの IoT HubA standard-tier IoT Hub in Azure.

deviceToCloudUpload および deviceAutoDelete のプロパティdeviceToCloudUpload and deviceAutoDelete properties

このモジュールの必要なプロパティを使用して、deviceToCloudUploadPropertiesdeviceAutoDeleteProperties を設定します。Use the module's desired properties to set deviceToCloudUploadProperties and deviceAutoDeleteProperties. 必要なプロパティは、デプロイ中に設定したり、モジュール ツインを編集することで、再デプロイすることなく後で変更したりできます。Desired properties can be set during deployment or changed later by editing the module twin without the need to redeploy. 値が確実に正しく反映されるよう、reported configurationconfigurationValidation の "モジュール ツイン" をチェックすることをお勧めします。We recommend checking the "Module Twin" for reported configuration and configurationValidation to make sure values are correctly propagated.

deviceToCloudUploadPropertiesdeviceToCloudUploadProperties

この設定の名前は deviceToCloudUploadProperties です。The name of this setting is deviceToCloudUploadProperties. IoT Edge シミュレーターを使用している場合は、値を、これらのプロパティの関連する環境変数 (説明セクションに記載) に設定します。If you are using the IoT Edge simulator, set the values to the related environment variables for these properties, which you can find in the explanation section.

プロパティProperty 指定できる値Possible Values 説明Explanation
uploadOnuploadOn true、falsetrue, false 既定では false に設定されています。Set to false by default. この機能をオンにする場合は、このフィールドを true に設定します。If you want to turn the feature on, set this field to true.

環境変数: deviceToCloudUploadProperties__uploadOn={false,true}Environment variable: deviceToCloudUploadProperties__uploadOn={false,true}
uploadOrderuploadOrder NewestFirst、OldestFirstNewestFirst, OldestFirst データを Azure にコピーする順序を選択できます。Allows you to choose the order in which the data is copied to Azure. 既定では OldestFirst に設定されています。Set to OldestFirst by default. 順序は BLOB の最終更新時刻によって決定されます。The order is determined by last modified time of Blob.

環境変数: deviceToCloudUploadProperties__uploadOrder={NewestFirst,OldestFirst}Environment variable: deviceToCloudUploadProperties__uploadOrder={NewestFirst,OldestFirst}
cloudStorageConnectionStringcloudStorageConnectionString "DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>;EndpointSuffix=<your end point suffix>" は、データのアップロード先のストレージ アカウントを選択するための接続文字列です。"DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>;EndpointSuffix=<your end point suffix>" is a connection string that allows you to specify the storage account to which you want your data uploaded. Azure Storage Account NameAzure Storage Account KeyEnd point suffix を指定します。Specify Azure Storage Account Name, Azure Storage Account Key, End point suffix. データのアップロード先の Azure の適切な EndpointSuffix を追加します。これはグローバル Azure、政府機関向け Azure、および Microsoft Azure Stack ごとに異なります。Add appropriate EndpointSuffix of Azure where data will be uploaded, it varies for Global Azure, Government Azure, and Microsoft Azure Stack.

ここで Azure Storage SAS 接続文字列を指定できます。You can choose to specify Azure Storage SAS connection string here. ただし、有効期限が切れた場合は、このプロパティを更新する必要があります。But you have to update this property when it expires.

環境変数: deviceToCloudUploadProperties__cloudStorageConnectionString=<connection string>Environment variable: deviceToCloudUploadProperties__cloudStorageConnectionString=<connection string>
storageContainersForUploadstorageContainersForUpload "<source container name1>": {"target": "<target container name>"},"<source container name1>": {"target": "<target container name>"},

"<source container name1>": {"target": "%h-%d-%m-%c"},"<source container name1>": {"target": "%h-%d-%m-%c"},

"<source container name1>": {"target": "%d-%c"}
Azure にアップロードするコンテナーの名前を指定できます。Allows you to specify the container names you want to upload to Azure. このモジュールでは、ソースとターゲットの両方のコンテナー名を指定できます。This module allows you to specify both source and target container names. ターゲット コンテナー名を指定しない場合、コンテナー名は自動的に <IoTHubName>-<IotEdgeDeviceID>-<ModuleName>-<SourceContainerName> として割り当てられます。If you don't specify the target container name, it will automatically assign the container name as <IoTHubName>-<IotEdgeDeviceID>-<ModuleName>-<SourceContainerName>. ターゲット コンテナー名のテンプレート文字列を作成して、使用可能な値の列をチェックアウトできます。You can create template strings for target container name, check out the possible values column.
* %h -> IoT Hub 名 (3 ~ 50 文字)。* %h -> IoT Hub Name (3-50 characters).
* %d -> IoT Edge デバイス ID (1 ~ 129 文字)。* %d -> IoT Edge Device ID (1 to 129 characters).
* %m -> モジュール名 (1 ~ 64 文字)。* %m -> Module Name (1 to 64 characters).
* %c -> ソース コンテナー名 (3 ~ 63 文字)。* %c -> Source Container Name (3 to 63 characters).

コンテナー名の最大サイズは 63 文字です。ターゲット コンテナー名を自動的に割り当てる場合は、コンテナーのサイズが 63 文字を超えると、各セクション (IoTHubName、IotEdgeDeviceID、ModuleName、SourceContainerName) が 15 文字まで削除されます。Maximum size of the container name is 63 characters, while automatically assigning the target container name if the size of container exceeds 63 characters it will trim each section (IoTHubName, IotEdgeDeviceID, ModuleName, SourceContainerName) to 15 characters.

環境変数: deviceToCloudUploadProperties__storageContainersForUpload__<sourceName>__target=<targetName>Environment variable: deviceToCloudUploadProperties__storageContainersForUpload__<sourceName>__target=<targetName>
deleteAfterUploaddeleteAfterUpload true、falsetrue, false 既定では false に設定されています。Set to false by default. true に設定すると、クラウド ストレージへのアップロードが完了したときにデータが自動的に削除されます。When it is set to true, it will automatically delete the data when upload to cloud storage is finished.

注意:追加 BLOB を使用している場合、この設定は、アップロードの成功後にローカル ストレージから追加 BLOB を削除し、それ以降、それらの BLOB へのブロック追加操作はすべて失敗します。CAUTION: If you are using append blobs, this setting will delete append blobs from local storage after a successful upload, and any future Append Block operations to those blobs will fail. この設定は注意して使用してください。アプリケーションで追加操作がまれにしか行われない、または連続追加操作がサポートされていない場合は、これを有効にしないでくださいUse this setting with caution, do not enable this if your application does infrequent append operations or does not support continuous append operations

環境変数: deviceToCloudUploadProperties__deleteAfterUpload={false,true}Environment variable: deviceToCloudUploadProperties__deleteAfterUpload={false,true}.

deviceAutoDeletePropertiesdeviceAutoDeleteProperties

この設定の名前は deviceAutoDeleteProperties です。The name of this setting is deviceAutoDeleteProperties. IoT Edge シミュレーターを使用している場合は、値を、これらのプロパティの関連する環境変数 (説明セクションに記載) に設定します。If you are using the IoT Edge simulator, set the values to the related environment variables for these properties, which you can find in the explanation section.

プロパティProperty 指定できる値Possible Values 説明Explanation
deleteOndeleteOn true、falsetrue, false 既定では false に設定されています。Set to false by default. この機能をオンにする場合は、このフィールドを true に設定します。If you want to turn the feature on, set this field to true.

環境変数: deviceAutoDeleteProperties__deleteOn={false,true}Environment variable: deviceAutoDeleteProperties__deleteOn={false,true}
deleteAfterMinutesdeleteAfterMinutes <minutes> 時間を分単位で指定します。Specify the time in minutes. この値が期限切れになると、モジュールが自動的にローカル ストレージから BLOB を削除します。The module will automatically delete your blobs from local storage when this value expires.

環境変数: deviceAutoDeleteProperties__ deleteAfterMinutes=<minutes>Environment variable: deviceAutoDeleteProperties__ deleteAfterMinutes=<minutes>
retainWhileUploadingretainWhileUploading true、falsetrue, false 既定では true に設定されていて、deleteAfterMinutes が期限切れになった場合に、クラウド ストレージへのアップロード中は BLOB が保持されます。By default it is set to true, and it will retain the blob while it is uploading to cloud storage if deleteAfterMinutes expires. false に設定することができ、その場合は deleteAfterMinutes が期限切れになるとすぐにデータが削除されます。You can set it to false and it will delete the data as soon as deleteAfterMinutes expires. 注:このプロパティを機能させるには、UploadOn が true に設定されている必要があります。Note: For this property to work uploadOn should be set to true.

注意:追加 BLOB を使用している場合、この設定は、値の有効期限が切れるとローカル ストレージから追加 BLOB を削除し、それ以降、それらの BLOB へのブロック追加操作はすべて失敗します。CAUTION: If you are using append blobs, this setting will delete append blobs from local storage when the value expires, and any future Append Block operations to those blobs will fail. アプリケーションによって実行される追加操作の予想される頻度に対して、有効期限の値が十分に大きいことを確認してください。You may want to make sure the expiry value is large enough for the expected frequency of append operations performed by your application.

環境変数: deviceAutoDeleteProperties__retainWhileUploading={false,true}Environment variable: deviceAutoDeleteProperties__retainWhileUploading={false,true}

ローカル ストレージとして SMB 共有を使用するUsing SMB share as your local storage

Windows ホストにこのモジュールの Windows コンテナーをデプロイするときに、ローカル ストレージ パスとして SMB 共有を指定できます。You can provide SMB share as your local storage path, when you deploy Windows container of this module on Windows host.

SMB 共有と IoT デバイスが相互に信頼されたドメインにあることを確認してください。Make sure the SMB share and IoT device are in mutually trusted domains.

New-SmbGlobalMapping PowerShell コマンドを実行して、Windows を実行している IoT デバイス上でローカルに SMB 共有をマップすることができます。You can run New-SmbGlobalMapping PowerShell command to map the SMB share locally on the IoT device running Windows.

構成手順は次のとおりです。Below are the configuration steps:

$creds = Get-Credential
New-SmbGlobalMapping -RemotePath <remote SMB path> -Credential $creds -LocalPath <Any available drive letter>

例:Example:
$creds = Get-Credential
New-SmbGlobalMapping -RemotePath \\contosofileserver\share1 -Credential $creds -LocalPath G:

このコマンドは、資格情報を使用してリモート SMB サーバーで認証を行います。This command will use the credentials to authenticate with the remote SMB server. 次に、リモート共有パスを G: ドライブ文字にマップします (他の使用可能なドライブ文字を指定できます)。Then, map the remote share path to G: drive letter (can be any other available drive letter). これで、IoT デバイスのデータ ボリュームが G: ドライブのパスにマップされました。The IoT device now have the data volume mapped to a path on the G: drive.

IoT デバイスのユーザーがリモート SMB 共有に対して読み取りおよび書き込みできることを確認してください。Make sure the user in IoT device can read/write to the remote SMB share.

実際のデプロイでは、<storage mount> の値として G:/ContainerData:C:/BlobRoot を指定できます。For your deployment the value of <storage mount> can be G:/ContainerData:C:/BlobRoot.

Linux のコンテナー ユーザーにディレクトリ アクセスを許可するGranting directory access to container user on Linux

Linux コンテナーの作成オプションでストレージにボリューム マウントを使用した場合は、追加の手順を実行する必要はありませんが、バインド マウントを使用した場合は、サービスを正しく実行するために次の手順が必要になります。If you have used volume mount for storage in your create options for Linux containers then you don't have to do any extra steps, but if you used bind mount then these steps are required to run the service correctly.

ユーザーのアクセス権を作業の実行に必要な最小限のアクセス許可に制限する最小限の特権の原則に従って、このモジュールには、ユーザー (名前: absie、ID:11000) とユーザー グループ (名前: absie、ID:11000) が含まれています。Following the principle of least privilege to limit the access rights for users to bare minimum permissions they need to perform their work, this module includes a user (name: absie, ID: 11000) and a user group (name: absie, ID: 11000). コンテナーがルートとして開始された場合 (既定のユーザーはルート)、サービスは低い特権の absie ユーザーとして開始されます。If the container is started as root (default user is root), our service will be started as the low-privilege absie user.

この動作により、サービスが正常に動作するために、ホスト パス バインドのアクセス許可の構成が重要になります。構成によっては、アクセス拒否エラーが発生してサービスがクラッシュします。This behavior makes configuration of the permissions on host path binds crucial for the service to work correctly, otherwise the service will crash with access denied errors. ディレクトリ バインディングで使用されるパスには、コンテナー ユーザー (例: absie 11000) がアクセスできる必要があります。The path that is used in directory binding needs to be accessible by the container user (example: absie 11000). ホストで次のコマンドを実行して、コンテナー ユーザーにディレクトリへのアクセス権を付与できます。You can grant the container user access to the directory by executing the commands below on the host:

sudo chown -R 11000:11000 <blob-dir> 
sudo chmod -R 700 <blob-dir> 

例:Example:
sudo chown -R 11000:11000 /srv/containerdata
sudo chmod -R 700 /srv/containerdata

absie 以外のユーザーとしてサービスを実行する必要がある場合は、配置マニフェストの createOptions の "User" プロパティでカスタム ユーザー ID を指定できます。If you need to run the service as a user other than absie, you can specify your custom user ID in createOptions under "User" property in your deployment manifest. このような場合は、既定値またはルート グループ ID 0 を使用する必要があります。In such case you need to use default or root group ID 0.

"createOptions": { 
  "User": "<custom user ID>:0" 
} 

ここで、コンテナー ユーザーにディレクトリへのアクセスを許可します。Now, grant the container user access to the directory

sudo chown -R <user ID>:<group ID> <blob-dir> 
sudo chmod -R 700 <blob-dir> 

ログ ファイルを構成するConfigure log files

お使いのモジュールのログ ファイルの構成については、こちらの運用環境のベスト プラクティスをご覧ください。For information on configuring log files for your module, see these production best practices.

ご自分の BLOB ストレージ モジュールに接続するConnect to your blob storage module

ご自分のモジュールに対して構成したアカウント名とアカウントキーを使用して、ご利用の IoT Edge デバイス上の BLOB ストレージにアクセスできます。You can use the account name and account key that you configured for your module to access the blob storage on your IoT Edge device.

作成する任意のストレージ要求に対する BLOB エンドポイントとして、ご利用の IoT Edge デバイスを指定します。Specify your IoT Edge device as the blob endpoint for any storage requests that you make to it. 構成した IoT Edge デバイス情報とアカウント名を使用して、明示的なストレージ エンドポイントへの接続文字列を作成できます。You can Create a connection string for an explicit storage endpoint using the IoT Edge device information and the account name that you configured.

  • Azure Blob Storage on IoT Edge モジュールが実行されているデバイスにデプロイされているモジュールの場合、BLOB エンドポイントは http://<module name>:11002/<account name> になります。For modules that are deployed on the same device as where the Azure Blob Storage on IoT Edge module is running, the blob endpoint is: http://<module name>:11002/<account name>.
  • 別のデバイスで実行されているモジュールまたはアプリケーションの場合、実際のネットワークの適切なエンドポイントを選択する必要があります。For modules or applications running on a different device, you have to choose the right endpoint for your network. ネットワーク設定に応じて、外部モジュールまたはアプリケーションからのデータ トラフィックが Azure Blob Storage on IoT Edge モジュールを実行しているデバイスに到達できるようにエンドポイントの形式を選択します。Depending on your network setup, choose an endpoint format such that the data traffic from your external module or application can reach the device running the Azure Blob Storage on IoT Edge module. このシナリオの BLOB エンドポイントは次のいずれかです。The blob endpoint for this scenario is one of:
    • http://<device IP >:11002/<account name>
    • http://<IoT Edge device hostname>:11002/<account name>
    • http://<fully qualified domain name>:11002/<account name>

Azure Blob Storage のクイックスタートのサンプルAzure Blob Storage quickstart samples

Azure Blob Storage のドキュメントには、複数の言語のクイック スタートのサンプル コードが含まれています。The Azure Blob Storage documentation includes quickstart sample code in several languages. ご利用のローカル Blob Storage モジュールに接続するように BLOB エンドポイントを変更して、これらのサンプルを実行し、IoT Edge の Azure Blob Storage をテストできます。You can run these samples to test Azure Blob Storage on IoT Edge by changing the blob endpoint to connect to your local blob storage module.

次のクイック スタート サンプルでは IoT Edge からもサポートされる言語を使用するため、BLOB ストレージ モジュールと共に IoT Edge モジュールとして言語をデプロイできます。The following quickstart samples use languages that are also supported by IoT Edge, so you could deploy them as IoT Edge modules alongside the blob storage module:

  • .NET.NET
  • PythonPython
    • このバージョンのモジュールは BLOB の作成時刻を返さないため、この SDK の使用中に既知の問題が発生します。We have a known issue while using this SDK because this version of the module does not return blob creation time. そのため、BLOB の一覧表示などのいくつかの方法は機能しません。Hence few methods like list blobs does not work. 回避策として、BLOB クライアントで API バージョンを明示的に "2017-04-17" に設定します。As a workaround set explicitly API version on the blob client to '2017-04-17'.
      例: block_blob_service._X_MS_VERSION = '2017-04-17'Example: block_blob_service._X_MS_VERSION = '2017-04-17'
    • 追加 BLOB のサンプルAppend Blob Sample
  • Node.jsNode.js
  • JS/HTMLJS/HTML
  • RubyRuby
  • GoGo
  • PHPPHP

Azure Storage Explorer を使用してお使いのローカル ストレージに接続するConnect to your local storage with Azure Storage Explorer

Azure Storage Explorer を使用して、ご自身のローカル ストレージ アカウントに接続できます。You can use Azure Storage Explorer to connect to your local storage account.

  1. Azure ストレージ エクスプローラーをダウンロードしてインストールしますDownload and install Azure Storage Explorer

  2. 接続文字列を使用して Azure Storage に接続しますConnect to Azure Storage using a connection string

  3. 接続文字列 (DefaultEndpointsProtocol=http;BlobEndpoint=http://<host device name>:11002/<your local account name>;AccountName=<your local account name>;AccountKey=<your local account key>;) を指定しますProvide connection string: DefaultEndpointsProtocol=http;BlobEndpoint=http://<host device name>:11002/<your local account name>;AccountName=<your local account name>;AccountKey=<your local account key>;

  4. 接続する手順を実行します。Go through the steps to connect.

  5. ご自分のローカル ストレージ アカウント内にコンテナーを作成しますCreate container inside your local storage account

  6. ブロック BLOB または追加 BLOB としてファイルのアップロードを開始します。Start uploading files as Block blobs or Append Blobs.

    注意

    このモジュールでは、ページ BLOB はサポートされていません。This module does not support Page blobs.

  7. Storage Explorer で Azure Storage アカウントを接続するように選択することもできます。You can choose to connect your Azure storage accounts in Storage Explorer, too. この構成により、1 つのビューにローカル ストレージ アカウントと Azure ストレージ アカウントの両方を表示できます。This configuration gives you a single view for both your local storage account and Azure storage account

サポートされるストレージ操作Supported storage operations

IoT Edge 上の BLOB ストレージ モジュールでは Azure Storage SDK が使用され、ブロック BLOB エンドポイント用の 2017-04-17 バージョンの Azure Storage API と一貫性があります。Blob storage modules on IoT Edge use the Azure Storage SDKs, and are consistent with the 2017-04-17 version of the Azure Storage API for block blob endpoints.

すべての Azure Blob Storage の操作が、IoT Edge の Azure Blob Storage でサポートされるわけではないため、このセクションでは、それぞれの状態の一覧を示します。Because not all Azure Blob Storage operations are supported by Azure Blob Storage on IoT Edge, this section lists the status of each.

AccountAccount

サポート対象:Supported:

  • コンテナーの一覧表示List containers

サポート外:Unsupported:

  • Blob service プロパティの取得と設定Get and set blob service properties
  • BLOB 要求のプレフライトPreflight blob request
  • Blob service の統計情報の取得Get blob service stats
  • アカウント情報の取得Get account information

ContainersContainers

サポート対象:Supported:

  • コンテナーの作成と削除Create and delete container
  • コンテナーのプロパティとメタデータの取得Get container properties and metadata
  • BLOB を一覧表示するList blobs
  • コンテナー ACL の取得と設定Get and set container ACL
  • コンテナー メタデータの設定Set container metadata

サポート外:Unsupported:

  • コンテナーのリースLease container

BLOBBlobs

サポート対象:Supported:

  • BLOB の配置、取得、削除Put, get, and delete blob
  • BLOB プロパティの取得と設定Get and set blob properties
  • BLOB メタデータの取得と設定Get and set blob metadata

サポート外:Unsupported:

  • BLOB のリリースLease blob
  • BLOB のスナップショットSnapshot blob
  • BLOB のコピーとコピーの中止Copy and abort copy blob
  • BLOB の削除の取り消しUndelete blob
  • BLOB レベルの設定Set blob tier

ブロック blobBlock blobs

サポート対象:Supported:

  • ブロックの配置Put block
  • ブロック一覧の配置と取得Put and get block list

サポート外:Unsupported:

  • URL からブロックの配置Put block from URL

追加 BLOBAppend blobs

サポート対象:Supported:

  • ブロックの追加Append block

サポート外:Unsupported:

  • URL からブロックの追加Append block from URL

Event Grid on IoT Edge の統合Event Grid on IoT Edge Integration

注意事項

Event Grid on IoT Edge との統合はプレビュー段階です。The integration with Event Grid on IoT Edge is in preview

この Azure Blob Storage on IoT Edge モジュールを Event Grid on IoT Edge と統合できるようになりました。This Azure Blob Storage on IoT Edge module now provides integration with Event Grid on IoT Edge. この統合の詳細については、モジュールのデプロイ、イベントの発行、イベント配信の確認に関するチュートリアルを参照してください。For detailed information on this integration, see the tutorial to deploy the modules, publish events and verify event delivery.

リリース ノートRelease Notes

このモジュール用の Docker Hub のリリース ノートですHere are the release notes in docker hub for this module

フィードバックFeedback

お客様のフィードバックは、このモジュールとその機能を便利で使いやすいものにするために、Microsoft にとって重要です。Your feedback is important to us to make this module and its features useful and easy to use. Microsoft では、今後の改良の参考とするために、皆様からのフィードバックをお待ちしています。Please share your feedback and let us know how we can improve.

absiotfeedback@microsoft.com までお寄せくださいYou can reach us at absiotfeedback@microsoft.com

次のステップNext steps

Azure Blob Storage を IoT Edge にデプロイする方法を学習するLearn how to Deploy Azure Blob Storage on IoT Edge

IoT Edge 上のAzure Blob Storage ブログの最新の更新とお知らせによって最新情報を得るStay up-to-date with recent updates and announcement in the Azure Blob Storage on IoT Edge blog