:
IoT Edge 1.5
重要
IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は 2024 年 11 月 12 日に終了しました。 以前のリリースを使用している場合は、「Update IoT Edgeを参照してください。
Windows (EFLOW) 仮想マシン上の Linux IoT Edgeのデプロイ、プロビジョニング、および状態の取得を行う PowerShell 関数について説明します。
前提条件
この記事で説明されているコマンドは、AzureEFLOW.psm1 ファイルからのものです。これは、ご使用のシステムの WindowsPowerShell の C:\Program Files\WindowsPowerShell\Modules\AzureEFLOW ディレクトリー内にあります。
PowerShell ディレクトリに AzureEflow>AzureEflow フォルダーがない場合は、次の手順に従って、Windowsに Linux 用Azure IoT Edgeをダウンロードしてインストールします。
管理者特権の PowerShell セッションで、次の各コマンドを実行して、Windows上の Linux 用のIoT Edgeをダウンロードします。
- X64、AMD64
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi')) $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_LTS_X64" -OutFile $msiPath- ARM64
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi')) $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_LTS_ARM64" -OutFile $msiPathIoT Edge for Linux をデバイスの Windows にインストールします。
Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"カスタムのインストールおよび VHDX ディレクトリを指定するには、インストール コマンドに
INSTALLDIR="<FULLY_QUALIFIED_PATH>"およびVHDXDIR="<FULLY_QUALIFIED_PATH>"パラメーターを追加します。ターゲット デバイスの実行ポリシーを
AllSigned以上に設定します。Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
Add-EflowNetwork
Add-EflowNetwork コマンドは、EFLOW 仮想マシンに新しいネットワークを追加します。 このコマンドには 2 つのパラメーターを指定します。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| vswitchName | 仮想スイッチの名前 | EFLOW VM に割り当てられた仮想スイッチの名前。 |
| vswitchType | 内部または外部 | EFLOW VM に割り当てられた仮想スイッチの種類。 |
これは、次の 4 つのプロパティを含むオブジェクトを返します。
- 名前
- AllocationMethod
- Cidr
- タイプ
詳細については、コマンド Get-Help Add-EflowNetwork -full を使用してください。
Add-EflowVmEndpoint
Add-EflowVmEndpoint コマンドは、EFLOW 仮想マシンに新しいネットワーク エンドポイントを追加します。 静的 IP を設定するには、オプション パラメーターを使用します。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| vswitchName | 仮想スイッチの名前 | EFLOW VM に割り当てられた仮想スイッチの名前。 |
| vendpointName | 仮想エンドポイントの名前 | EFLOW VM に割り当てられた仮想エンドポイントの名前。 |
| ip4Address | DHCP サーバー スコープの範囲内の IPv4 アドレス | EFLOW VM の静的 IPv4 アドレス。 |
| ip4PrefixLength | サブネットの IPv4 プレフィックス長 | IPv4 サブネット プレフィックス長。静的 IPv4 アドレスが指定されている場合にのみ有効です。 |
| ip4GatewayAddress | サブネット ゲートウェイの IPv4 アドレス | ゲートウェイ IPv4 アドレス。静的 IPv4 アドレスが指定されている場合にのみ有効です。 |
これは、次の 4 つのプロパティを含むオブジェクトを返します。
- 名前
- MacAddress
- HealthStatus
- IpConfiguration
詳細については、コマンド Get-Help Add-EflowVmEndpoint -full を使用してください。
Add-EflowVmSharedFolder
Add-EflowVmSharedFolder コマンドを使用すると、1 つ以上のWindowsホスト OS フォルダーを EFLOW 仮想マシンと共有できます。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| sharedFoldersJsonPath | String | 共有フォルダー JSON 構成ファイルへのパス。 |
この JSON 構成ファイルには、次の構造体が必要です。
- sharedFOlderRoot: EFLOW 仮想マシンと共有するすべてのフォルダーを含むWindows ルート フォルダーへのパス。
- hostFolderPath: EFLOW VM と共有するフォルダーの (親ルート フォルダーへの) 相対パス。
- readOnly: 共有フォルダーが EFLOW 仮想マシンから書き込み可能か、読み取り専用かを定義します (値は false または true)。
- targetFolderOnGuest: ホスト OS フォルダー Windowsマウントされている EFLOW 仮想マシン内のフォルダー パス。
[
{
"sharedFolderRoot": "<shared-folder-root-windows-path>",
"sharedFolders": [
{ "hostFolderPath": "<path-shared-folder>",
"readOnly": "<read-only>",
"targetFolderOnGuest": "<linux-mounting-point>"
}
]
}
]
詳細については、コマンド Get-Help Add-EflowVmSharedFolder -full を使用してください。
Connect-EflowVm
Connect-EflowVm コマンドでは、SSH を使用して仮想マシンに接続します。 仮想マシンへの SSH 接続が許可されるアカウントは、それを作成したユーザーだけです。
このコマンドは、ホスト デバイスで実行されている PowerShell セッションでのみ機能します。 Windows Admin Centerまたは PowerShell ISE を使用している場合は機能しません。
詳細については、コマンド Get-Help Connect-EflowVm -full を使用してください。
Copy-EflowVmFile
Copy-EflowVmFile コマンドは、SCP を使用して、仮想マシンとの間でファイルをコピーします。 省略可能なパラメーターを使用して、コピー元およびコピー先のファイル パスとコピーの方向を指定します。
ユーザー iotedge-user は、仮想マシン上の元のディレクトリすべてに対する読み取りアクセス許可を持っているか、コピー先ディレクトリすべてに対する書き込みアクセス許可を持っている必要があります。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| fromFile | ファイルへのパスを表す文字列 | 読み取り元のファイルを定義します。 |
| toFile | ファイルへのパスを表す文字列 | 書き込み先のファイルを定義します。 |
| pushFile | なし | このフラグは、コピーの方向を示します。 指定した場合、このコマンドにより、仮想マシンにファイルがプッシュされます。 指定しない場合、このコマンドにより、仮想マシンからファイルがプルされます。 |
詳細については、コマンド Get-Help Copy-EflowVMFile -full を使用してください。
Deploy-Eflow
Deploy-Eflow コマンドは、メインのデプロイ方法です。 deployment コマンドは、仮想マシンを作成し、ファイルをプロビジョニングして、IoT Edge エージェント モジュールをデプロイします。 どのパラメーターも必須ではありませんが、作成時に仮想マシンの設定を変更するために使用できます。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| acceptEula | Yes または No | EULA を受け入れまたは拒否し、EULA プロンプトをバイパスするためのショートカット。 |
| acceptOptionalTelemetry | Yes または No | 省略可能なテレメトリを受け入れまたは拒否し、テレメトリのプロンプトをバイパスするためのショートカット。 |
| cpuCount | 1 からデバイスの CPU コア数の範囲の整数値 | VM の CPU コア数。 既定値: 1 仮想コア。 |
| memoryInMB | 1024 からデバイスの空きメモリの最大容量の範囲の整数値 (偶数) | VM に割り当てられたメモリ。 既定値: 1024 MB。 |
| vmDiskSize | 21 GB から 2 TB | 容量可変の仮想ハード ディスクの最大論理ディスク サイズ。 既定値: 29 GB。 注: vmDiskSize または vmDataSize はどちらも使用できますが、両方を一緒に使用することはできません。 |
| vmDataSize | 2 GB から 2 TB | 生成されるハード ディスクの最大データ パーティション サイズ (GB 単位)。 既定値: 10 GB。 注: vmDiskSize または vmDataSize はどちらも使用できますが、両方を一緒に使用することはできません。 |
| vmLogSize | Small または Large | ログ パーティションのサイズを指定しします。 Small = 1GB、Large = 6GB。 規定値: Small。 |
| vswitchName | 仮想スイッチの名前 | EFLOW VM に割り当てられた仮想スイッチの名前。 |
| vswitchType | 内部または外部 | EFLOW VM に割り当てられた仮想スイッチの種類。 |
| ip4Address | DHCP サーバー スコープの範囲内の IPv4 アドレス | EFLOW VM の静的 IPv4 アドレス。 |
| ip4PrefixLength | サブネットの IPv4 プレフィックス長 | IPv4 サブネット プレフィックス長。静的 IPv4 アドレスが指定されている場合にのみ有効です。 |
| ip4GatewayAddress | サブネット ゲートウェイの IPv4 アドレス | ゲートウェイ IPv4 アドレス。静的 IPv4 アドレスが指定されている場合にのみ有効です。 |
| gpuName | GPU デバイス名 | パススルーに使用される GPU デバイスの名前。 |
| gpuPassthroughType | DirectDeviceAssignment、ParaVirtualization、または none (CPU のみ) | GPU パススルーの種類 |
| gpuCount | 1 からデバイスの GPU コア数の範囲の整数値 | VM の GPU デバイスの数。 注: ParaVirtualization を使用する場合は、必ず gpuCount = 1 を設定してください |
| customSsh | なし | ユーザーがカスタムの OpenSSH.Client インストールを使用するかどうかを決定します。 存在する場合は、ssh.exe を EFLOW PSM で使用できる必要があります。 |
| sharedFoldersJsonPath | String | 共有フォルダー JSON 構成ファイルへのパス。 |
詳細については、コマンド Get-Help Deploy-Eflow -full を使用してください。
Get-EflowHostConfiguration
Get-EflowHostConfiguration コマンドを実行すると、ホスト構成が返されます。 このコマンドはパラメーターを受け取りません。 これは、次の 4 つのプロパティを含むオブジェクトを返します。
- FreePhysicalMemoryInMB
- NumberOfLogicalProcessors
- DiskInfo
- GpuInfo
詳細については、コマンド Get-Help Get-EflowHostConfiguration -full を使用してください。
Get-EflowLogs
Get-EflowLogs コマンドは、Windowsのデプロイとインストール時に linux のIoT Edgeからログを収集してバンドルします。 バンドルされたログは、.zip フォルダーの形式で出力されます。
詳細については、コマンド Get-Help Get-EflowLogs -full を使用してください。
Get-EflowNetwork
Get-EflowNetwork コマンドは、EFLOW 仮想マシンに割り当てられたネットワークのリストを返します。 特定のネットワークを取得するには、オプション パラメーターを使用します。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| vswitchName | 仮想スイッチの名前 | EFLOW VM に割り当てられた仮想スイッチの名前。 |
次の 4 つのプロパティを含んだオブジェクトのリストが返されます。
- 名前
- AllocationMethod
- Cidr
- タイプ
詳細については、コマンド Get-Help Get-EflowNetwork -full を使用してください。
Get-EflowVm
Get-EflowVm コマンドを実行すると、仮想マシンの現在の構成が返されます。 このコマンドはパラメーターを受け取りません。 これは、次の 4 つのプロパティを含むオブジェクトを返します。
- VmConfiguration
- VmPowerState
- EdgeRuntimeVersion
- EdgeRuntimeStatus
- SystemStatistics
読み取り可能なリスト内の特定のプロパティを表示するには、そのプロパティを展開して Get-EflowVM コマンドを実行します。 次に例を示します。
Get-EflowVM | Select -ExpandProperty VmConfiguration | Format-List
詳細については、コマンド Get-Help Get-EflowVm -full を使用してください。
Get-EflowVmAddr
Get-EflowVmAddr コマンドは、仮想マシンの現在の IP と MAC アドレスに対してクエリを実行するために使用されます。 このコマンドは、IP と MAC アドレスが時間の経過と共に変わる場合があるという事実を考慮して存在しています。
追加情報については、Get-Help Get-EflowVmAddr -full コマンドを使用してください。
Get-EflowVmEndpoint
Get-EflowVmEndpoint コマンドは、EFLOW 仮想マシンに割り当てられたネットワーク エンドポイントのリストを返します。 特定のネットワーク エンドポイントを取得するには、オプション パラメーターを使用します。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| vswitchName | 仮想スイッチの名前 | EFLOW VM に割り当てられた仮想スイッチの名前。 |
次の 4 つのプロパティを含んだオブジェクトのリストが返されます。
- 名前
- MacAddress
- HealthStatus
- IpConfiguration
詳細については、コマンド Get-Help Get-EflowVmEndpoint -full を使用してください。
Get-EflowVmFeature
Get-EflowVmFeature コマンドは、Windows機能での Linux のIoT Edgeの有効化の状態を返します。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| フィーチャー | DpsTpm | クエリを実行する機能名。 |
詳細については、コマンド Get-Help Get-EflowVmFeature -full を使用してください。
Get-EflowVmName
Get-EflowVmName コマンドを実行すると、仮想マシンの現在のホスト名が返されます。 このコマンドは、Windowsホスト名が時間の経過と同時に変更される可能性があることを考慮するために存在します。
詳細については、コマンド Get-Help Get-EflowVmName -full を使用してください。
Get-EflowVmSharedFolder
Get-EflowVmSharedFolder コマンドは、EFLOW 仮想マシンと共有されている 1 つ以上のWindowsホスト OS フォルダーに関する情報を返します。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| sharedfolderRoot | String | Windows ホスト OS 共有ルート フォルダーへのパス。 |
| hostFolderPath | 文字列またはリスト | Windows ホスト OS 共有フォルダーへの相対パス/パス (ルート フォルダー)。 |
次の 4 つのプロパティを持つオブジェクトのリストが返されます。
- hostFolderPath: EFLOW VM と共有しているフォルダーの (親ルート フォルダーへの) 相対パス。
- readOnly: 共有フォルダーが EFLOW 仮想マシンから書き込み可能か、読み取り専用かを定義します (値は false または true)。
- targetFolderOnGuest: Windows フォルダーがマウントされている EFLOW 仮想マシン内のフォルダー パス。
詳細については、コマンド Get-Help Get-EflowVmSharedFolder -full を使用してください。
Get-EflowVmTelemetryOption
Get-EflowVmTelemetryOption コマンドを実行すると、仮想マシン内のテレメトリ (Optional または Required) の状態が表示されます。
詳細については、コマンド Get-Help Get-EflowVmTelemetryOption -full を使用してください。
Get-EflowVmTpmProvisioningInfo
Get-EflowVmTpmProvisioningInfo コマンドを実行すると、TPM プロビジョニング情報が返されます。 このコマンドはパラメーターを受け取りません。 これは、次の 2 つのプロパティを含むオブジェクトを返します。
- 保証キー
- 登録 ID
詳細については、コマンド Get-Help Get-EflowVmTpmProvisioningInfo -full を使用してください。
Invoke-EflowVmCommand
Invoke-EflowVMCommand コマンドを実行すると、仮想マシン内で Linux コマンドが実行され、出力が返されます。 このコマンドは、有限の出力を返す Linux コマンドに対してのみ機能します。 ユーザー操作が必要、または無期限に実行される Linux コマンドには使用できません。
次の省略可能なパラメーターを使用して、コマンドを事前に指定できます。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| command | String | VM で実行されるコマンド。 |
| ignoreError | なし | このフラグを指定した場合、コマンドからのエラーが無視されます。 |
詳細については、コマンド Get-Help Invoke-EflowVmCommand -full を使用してください。
Provision-EflowVm
Provision-EflowVm コマンドは、IoT Edge デバイスのプロビジョニング情報を仮想マシンの IoT Edge config.toml ファイルに追加します。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| provisioningType | ManualConnectionString、ManualX509、DpsTPM、DpsX509、または DpsSymmetricKey | IoT Edge デバイスに使用するプロビジョニングの種類を定義します。 |
| devConnString | 既存のIoT Edge デバイスのデバイス connection string | IoT Edge デバイスを手動でプロビジョニングするためのデバイス connection string (ManualConnectionString)。 |
| iotHubHostname | 既存の IoT ハブのホスト名 | IoT Edge デバイスをプロビジョニングするためのホスト名をAzure IoT Hubします (ManualX509)。 |
| deviceId | 既存のIoT Edge デバイスのデバイス ID | IoT Edge デバイスをプロビジョニングするためのデバイス ID (ManualX509)。 |
| scopeId | 既存の DPS インスタンスのスコープ ID。 | IoT Edge デバイスをプロビジョニングするためのスコープ ID (DpsTPM、DpsX509、または DpsSymmetricKey)。 |
| symmKey | 既存の DPS 登録の主キー、または対称キーを使用して登録された既存のIoT Edge デバイスの主キー | IoT Edge デバイスをプロビジョニングするための対称キー (DpsSymmetricKey)。 |
| registrationId | 既存のIoT Edge デバイスの登録 ID | IoT Edge デバイスをプロビジョニングするための登録 ID (DpsSymmetricKey、DpsTPM)。 |
| identityCertPath | ディレクトリ パス | Windows ホスト コンピューター上の ID 証明書の絶対宛先パス (ManualX509、 DpsX509)。 |
| identityPrivKeyPath | ディレクトリ パス | Windows ホスト コンピューター上の ID 秘密キーの絶対ソース パス (ManualX509、DpsX509)。 |
| globalEndpoint | デバイス エンドポイントの URL | DPS プロビジョニングに使用するグローバル エンドポイントの URL。 |
詳細については、コマンド Get-Help Provision-EflowVm -full を使用してください。
Remove-EflowNetwork
Remove-EflowNetwork コマンドは、EFLOW 仮想マシンにアタッチされている既存のネットワークを削除します。 このコマンドはパラメーターを 1 つ受け取ります。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| vswitchName | 仮想スイッチの名前 | EFLOW VM に割り当てられた仮想スイッチの名前。 |
詳細については、コマンド Get-Help Remove-EflowNetwork -full を使用してください。
Remove-EflowVmEndpoint
Remove-EflowVmEndpoint コマンドは、EFLOW 仮想マシンにアタッチされている既存のネットワーク エンドポイントを削除します。 このコマンドはパラメーターを 1 つ受け取ります。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| vendpointName | 仮想エンドポイントの名前 | EFLOW VM に割り当てられた仮想エンドポイントの名前。 |
詳細については、コマンド Get-Help Remove-EflowVmEndpoint -full を使用してください。
Remove-EflowVmSharedFolder
Remove-EflowVmSharedFolder コマンドは、Windows ホスト OS フォルダーの EFLOW 仮想マシンへの共有を停止します。 このコマンドには 2 つのパラメーターを指定します。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| sharedfolderRoot | String | Windows ホスト OS 共有ルート フォルダーへのパス。 |
| hostFolderPath | 文字列またはリスト | Windows ホスト OS 共有フォルダーへの相対パス/パス (ルート フォルダー)。 |
詳細については、コマンド Get-Help Remove-EflowVmSharedFolder -full を使用してください。
Set-EflowVM
Set-EflowVM コマンドを実行すると、要求されたプロパティで仮想マシンの構成が更新されます。 仮想マシンの特定の構成を定義するには、省略可能なパラメーターを使用します。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| cpuCount | 1 からデバイスの CPU コア数の範囲の整数値 | VM の CPU コア数。 |
| memoryInMB | 1024 からデバイスの空きメモリの最大容量の範囲の整数値 | VM に割り当てられたメモリ。 |
| gpuName | GPU デバイス名 | パススルーに使用される GPU デバイスの名前。 |
| gpuPassthroughType | DirectDeviceAssignment、ParaVirtualization、または none (パススルーなし) | GPU パススルーの種類 |
| gpuCount | 1 からデバイスの GPU コア数の範囲の整数値 | VM の GPU デバイスの数。注: DirectDeviceAssignment を使用する場合にのみ有効です |
| headless | なし | このフラグを指定した場合、これにより、セキュリティ警告が発行された場合にユーザーが確認する必要があるかどうかが決まります。 |
詳細については、コマンド Get-Help Set-EflowVM -full を使用してください。
Set-EflowVmDNSServers
Set-EflowVmDNSServers コマンドは、EFLOW 仮想マシン用に DNS サーバーを構成します。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| vendpointName | 仮想エンドポイント名の文字列値 | EFLOW VM に割り当てられている仮想インターフェイスを取得するには、Get-EflowVmEndpoint を使います。 例: DESKTOP-CONTOSO-EflowInterface |
| dnsServers | 名前解決に使用する DNS サーバーの IP アドレスの一覧 | 例: @("10.0.10.1") |
詳細については、コマンド Get-Help Set-EflowVmDNSServers -full を使用してください。
Set-EflowVmFeature
Set-EflowVmFeature コマンドは、Windows機能での Linux のIoT Edgeの状態を有効または無効にします。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| フィーチャー | DpsTpm、Defender | 切り替える機能の名前。 |
| 有効にする | なし | このフラグを指定した場合、コマンドによって機能が有効になります。 |
詳細については、コマンド Get-Help Set-EflowVmFeature -full を使用してください。
Set-EflowVmTelemetryOption
Set-EflowVmTelemetryOption コマンドを実行すると、仮想マシン内の省略可能なテレメトリが有効または無効になります。
| パラメーター | 指定可能な値 | 説明 |
|---|---|---|
| optionalTelemetry | True または False | 省略可能なテレメトリが選択されるかどうか。 |
詳細については、コマンド Get-Help Set-EflowVmTelemetryOption -full を使用してください。
Start-EflowVm
Start-EflowVm コマンドを実行すると、仮想マシンが起動されます。 仮想マシンが既に起動されている場合、何のアクションも実行されません。
詳細については、コマンド Get-Help Start-EflowVm -full を使用してください。
Stop-EflowVm
Stop-EflowVm コマンドを実行すると、仮想マシンが停止されます。 仮想マシンが既に停止されている場合、何のアクションも実行されません。
詳細については、コマンド Get-Help Stop-EflowVm -full を使用してください。
Verify-EflowVm
Verify-EflowVm コマンドは、仮想マシン上の Linux のIoT Edge Windows作成されたかどうかを確認する公開関数です。 これは一般的なパラメーターのみを受け取り、仮想マシンが作成された場合は True を返し、そうでない場合はfalseをします。
詳細については、コマンド Get-Help Verify-EflowVm -full を使用してください。
次のステップ
次の記事で、これらのコマンドを使用して、Windows上の Linux IoT Edgeをインストールしてプロビジョニングする方法について説明します。
Windows