Funções do PowerShell para o Azure IoT Edge para Linux no Windows

Aplica-se a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

O IoT Edge 1.4 é a versão suportada. Se tiver uma versão anterior, consulte Atualizar IoT Edge.

Entenda as funções do PowerShell que implantam, provisionam e obtêm o status da sua máquina virtual IoT Edge para Linux no Windows (EFLOW).

Pré-requisitos

Os comandos descritos neste artigo são do AzureEFLOW.psm1 arquivo, que pode ser encontrado em seu sistema em seu WindowsPowerShell diretório em C:\Program Files\WindowsPowerShell\Modules\AzureEFLOW.

Se você não tiver a pasta AzureEflow em seu diretório do PowerShell, use as seguintes etapas para baixar e instalar o Azure IoT Edge para Linux no Windows:

  1. Em uma sessão do PowerShell com privilégios elevados, execute cada um dos comandos a seguir para baixar o IoT Edge para Linux no Windows.

    • X64/AMD64
    $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
    $ProgressPreference = 'SilentlyContinue'
    Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
    
    • ARM64
    $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
    $ProgressPreference = 'SilentlyContinue'
    Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
    
  2. Instale o IoT Edge para Linux no Windows no seu dispositivo.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    

    Você pode especificar a instalação personalizada e diretórios VHDX adicionando INSTALLDIR="<FULLY_QUALIFIED_PATH>" parâmetros e VHDXDIR="<FULLY_QUALIFIED_PATH>" ao comando install.

  3. Defina a política de execução no dispositivo de destino como pelo menos AllSigned.

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Add-EflowNetwork

O comando Add-EflowNetwork adiciona uma nova rede à máquina virtual EFLOW. Este comando precisa de dois parâmetros.

Parâmetro Valores aceites Comentários
vswitchName Nome do comutador virtual Nome do comutador virtual atribuído à VM EFLOW.
vswitchType [en] Interno ou Externo Tipo do comutador virtual atribuído à VM EFLOW.

Ele retorna um objeto que contém quatro propriedades:

  • Nome
  • Método de atribuição
  • Cidr
  • Tipo

Para obter mais informações, use o comando Get-Help Add-EflowNetwork -full.

Add-EflowVmEndpoint

O comando Add-EflowVmEndpoint adiciona um novo ponto de extremidade de rede à máquina virtual EFLOW. Use os parâmetros opcionais para definir um IP estático.

Parâmetro Valores aceites Comentários
vswitchName Nome do comutador virtual Nome do comutador virtual atribuído à VM EFLOW.
vendpointName Nome do ponto de extremidade virtual Nome do ponto de extremidade virtual atribuído à VM EFLOW.
Endereço ip4 Endereço IPv4 no intervalo do Escopo do Servidor DCHP Endereço Ipv4 estático da VM EFLOW.
ip4PrefixLength Comprimento do prefixo IPv4 da sub-rede Comprimento do prefixo da sub-rede Ipv4, válido apenas quando o endereço estático Ipv4 é especificado.
ip4GatewayAddress Endereço IPv4 do gateway de sub-rede Endereço Ipv4 do gateway, válido apenas quando o endereço Ipv4 estático é especificado.

Ele retorna um objeto que contém quatro propriedades:

  • Nome
  • MacEndereço
  • HealthStatus
  • Configuração de Ip

Para obter mais informações, use o comando Get-Help Add-EflowVmEndpoint -full.

Add-EflowVmSharedFolder

O comando Add-EflowVmSharedFolder permite compartilhar uma ou mais pastas do sistema operacional host do Windows com a máquina virtual EFLOW.

Parâmetro Valores aceites Comentários
sharedFoldersJsonPath String Caminho para o arquivo de configuração JSON de Pastas Compartilhadas .

O arquivo de configuração JSON deve ter a seguinte estrutura:

  • sharedFOlderRoot : Caminho para a pasta raiz do Windows que contém todas as pastas a serem compartilhadas com a máquina virtual EFLOW.
  • hostFolderPath: Caminho relativo (para a pasta raiz pai) da pasta a ser compartilhada com a VM EFLOW.
  • readOnly: Define se a pasta compartilhada será gravável ou somente leitura da máquina virtual EFLOW - Valores: false ou true.
  • targetFolderOnGuest : Caminho da pasta dentro da máquina virtual EFLOW onde a pasta do sistema operacional host do Windows será montada.
[
   {
      "sharedFolderRoot": "<shared-folder-root-windows-path>",
      "sharedFolders": [ 
        { "hostFolderPath": "<path-shared-folder>", 
            "readOnly": "<read-only>", 
            "targetFolderOnGuest": "<linux-mounting-point>" 
        }
      ]
   }
]

Para obter mais informações, use o comando Get-Help Add-EflowVmSharedFolder -full.

Connect-EflowVm

O comando Connect-EflowVm se conecta à máquina virtual usando SSH. A única conta permitida para SSH para a máquina virtual é o usuário que a criou.

Este comando só funciona em uma sessão do PowerShell em execução no dispositivo host. Ele não funcionará ao usar o Windows Admin Center ou o PowerShell ISE.

Para obter mais informações, use o comando Get-Help Connect-EflowVm -full.

Copy-EflowVmFile

O comando Copy-EflowVmFile copia o arquivo de ou para a máquina virtual usando SCP. Use os parâmetros opcionais para especificar os caminhos dos arquivos de origem e destino e a direção da cópia.

O usuário iotedge-user deve ter permissão de leitura para qualquer diretório de origem ou permissão de gravação para qualquer diretório de destino na máquina virtual.

Parâmetro Valores aceites Comentários
fromFile String que representa o caminho para o arquivo Define o arquivo a ser lido.
toFile String que representa o caminho para o arquivo Define o arquivo a ser gravado.
pushFile Nenhuma Este sinalizador indica a direção da cópia. Se estiver presente, o comando envia o arquivo para a máquina virtual. Se estiver ausente, o comando extrai o arquivo da máquina virtual.

Para obter mais informações, use o comando Get-Help Copy-EflowVMFile -full.

Deploy-Eflow

O comando Deploy-Eflow é o principal método de implantação. O comando deployment cria a máquina virtual, provisiona arquivos e implanta o módulo do agente do IoT Edge. Embora nenhum dos parâmetros seja necessário, eles podem ser usados para modificar as configurações da máquina virtual durante a criação.

Parâmetro Valores aceites Comentários
aceitarEula Sim ou Não Um atalho para aceitar/negar o EULA e ignorar o prompt do EULA.
acceptOptionalTelemetry Sim ou Não Um atalho para aceitar/negar telemetria opcional e ignorar o prompt de telemetria.
cpuContagem Valor inteiro entre 1 e os núcleos de CPU do dispositivo Número de núcleos de CPU para a VM.

Valor padrão: 1 vCore.
memóriaInMB Valor par inteiro entre 1024 e a quantidade máxima de memória livre do dispositivo Memória alocada para a VM.

Valor padrão: 1024 MB.
vmDiskSize Entre 21 GB e 2 TB Tamanho máximo do disco lógico do disco rígido virtual em expansão dinâmica.

Valor padrão: 29 GB.

Nota: vmDiskSize ou vmDataSize podem ser usados, mas não ambos juntos.
vmDataSize Entre 2 GB e 2 TB Tamanho máximo da partição de dados do disco rígido resultante, em GB.

Valor padrão: 10 GB.

Nota: vmDiskSize ou vmDataSize podem ser usados, mas não ambos juntos.
vmLogTamanho Pequeno ou Grande Especifique o tamanho da partição de log. Pequeno = 1GB, Grande = 6GB.

Valor padrão: Pequeno.
vswitchName Nome do comutador virtual Nome do comutador virtual atribuído à VM EFLOW.
vswitchType [en] Interno ou Externo Tipo do comutador virtual atribuído à VM EFLOW.
Endereço ip4 Endereço IPv4 no intervalo do Escopo do Servidor DCHP Endereço Ipv4 estático da VM EFLOW.
ip4PrefixLength Comprimento do prefixo IPv4 da sub-rede Comprimento do prefixo da sub-rede Ipv4, válido apenas quando o endereço estático Ipv4 é especificado.
ip4GatewayAddress Endereço IPv4 do gateway de sub-rede Endereço Ipv4 do gateway, válido apenas quando o endereço Ipv4 estático é especificado.
gpuNome Nome do dispositivo GPU Nome do dispositivo GPU a ser usado para passagem.
gpuPassthroughType DirectDeviceAssignment, ParaVirtualization ou nenhum (somente CPU) Tipo de passagem de GPU
gpuContagem Valor inteiro entre 1 e o número de núcleos de GPU do dispositivo Número de dispositivos GPU para a VM.

Nota: Se estiver usando ParaVirtualization, certifique-se de definir gpuCount = 1
customSsh Nenhuma Determina se o usuário deseja usar sua instalação personalizada do OpenSSH.Client. Se estiver presente, ssh.exe deve estar disponível para o PSM EFLOW
sharedFoldersJsonPath String Caminho para o arquivo de configuração JSON de Pastas Compartilhadas .

Para obter mais informações, use o comando Get-Help Deploy-Eflow -full.

Get-EflowHostConfiguration

O comando Get-EflowHostConfiguration retorna a configuração do host. Este comando não usa parâmetros. Ele retorna um objeto que contém quatro propriedades:

  • FreePhysicalMemoryInMB
  • NumberOfLogicalProcessors
  • DiskInfo
  • GpuInfo

Para obter mais informações, use o comando Get-Help Get-EflowHostConfiguration -full.

Get-EflowLogs

O comando Get-EflowLogs coleta e agrupa logs do IoT Edge para Linux na implantação e instalação do Windows. Ele produz os logs agrupados na forma de uma .zip pasta.

Para obter mais informações, use o comando Get-Help Get-EflowLogs -full.

Get-EflowNetwork

O comando Get-EflowNetwork retorna uma lista das redes atribuídas à máquina virtual EFLOW. Use o parâmetro opcional para obter uma rede específica.

Parâmetro Valores aceites Comentários
vswitchName Nome do comutador virtual Nome do comutador virtual atribuído à VM EFLOW.

Ele retorna uma lista de objetos que contém quatro propriedades:

  • Nome
  • Método de atribuição
  • Cidr
  • Tipo

Para obter mais informações, use o comando Get-Help Get-EflowNetwork -full.

Get-EflowVm

O comando Get-EflowVm retorna a configuração atual da máquina virtual. Este comando não usa parâmetros. Ele retorna um objeto que contém quatro propriedades:

  • VmConfiguration
  • VmPowerState
  • EdgeRuntimeVersion
  • EdgeRuntimeStatus
  • Estatísticas do Sistema

Para exibir uma propriedade específica em uma lista legível, execute o Get-EflowVM comando com a propriedade expandida. Por exemplo:

Get-EflowVM | Select -ExpandProperty VmConfiguration | Format-List

Para obter mais informações, use o comando Get-Help Get-EflowVm -full.

Get-EflowVmAddr

O comando Get-EflowVmAddr é usado para consultar o endereço IP e MAC atual da máquina virtual. Este comando existe para explicar o fato de que o endereço IP e MAC pode mudar ao longo do tempo.

Para obter informações adicionais, use o comando Get-Help Get-EflowVmAddr -full.

Get-EflowVmEndpoint

O comando Get-EflowVmEndpoint retorna uma lista dos pontos de extremidade de rede atribuídos à máquina virtual EFLOW. Use o parâmetro opcional para obter um ponto de extremidade de rede específico.

Parâmetro Valores aceites Comentários
vswitchName Nome do comutador virtual Nome do comutador virtual atribuído à VM EFLOW.

Ele retorna uma lista de objetos que contém quatro propriedades:

  • Nome
  • MacEndereço
  • HealthStatus
  • Configuração de Ip

Para obter mais informações, use o comando Get-Help Get-EflowVmEndpoint -full.

Get-EflowVmFeature

O comando Get-EflowVmFeature retorna o status da ativação dos recursos do IoT Edge para Linux no Windows.

Parâmetro Valores aceites Comentários
funcionalidade DpsTpm Nome do recurso a ser consultado.

Para obter mais informações, use o comando Get-Help Get-EflowVmFeature -full.

Get-EflowVmName

O comando Get-EflowVmName retorna o nome de host atual da máquina virtual. Este comando existe para explicar o fato de que o nome de host do Windows pode mudar ao longo do tempo.

Para obter mais informações, use o comando Get-Help Get-EflowVmName -full.

Get-EflowVmSharedFolder

O comando Get-EflowVmSharedFolder retorna as informações sobre uma ou mais pastas do sistema operacional host do Windows compartilhadas com a máquina virtual EFLOW.

Parâmetro Valores aceites Comentários
sharedfolderRoot String Caminho para a pasta raiz compartilhada do sistema operacional host Windows.
hostFolderPath String ou Lista Caminho/caminhos relativos (para a pasta raiz) para a(s) pasta(s) compartilhada(s) do sistema operacional host Windows.

Ele retorna uma lista de objetos que contém três propriedades:

  • hostFolderPath: caminho relativo (para a pasta raiz pai) da pasta compartilhada com a VM EFLOW.
  • readOnly: Define se a pasta compartilhada é gravável ou somente leitura da máquina virtual EFLOW - Valores: false ou true.
  • targetFolderOnGuest: Caminho da pasta dentro da máquina virtual EFLOW onde a pasta do Windows está montada.

Para obter mais informações, use o comando Get-Help Get-EflowVmSharedFolder -full.

Get-EflowVmTelemetryOption

O comando Get-EflowVmTelemetryOption exibe o status da telemetria ( Opcional ou Necessária) dentro da máquina virtual.

Para obter mais informações, use o comando Get-Help Get-EflowVmTelemetryOption -full.

Get-EflowVmTpmProvisioningInfo

O comando Get-EflowVmTpmProvisioningInfo retorna as informações de provisionamento do TPM. Este comando não usa parâmetros. Ele retorna um objeto que contém duas propriedades:

  • Chave de Endossamento
  • ID de Registo

Para obter mais informações, use o comando Get-Help Get-EflowVmTpmProvisioningInfo -full.

Invoke-EflowVmCommand

O comando Invoke-EflowVMCommand executa um comando Linux dentro da máquina virtual e retorna a saída. Este comando só funciona para comandos Linux que retornam uma saída finita. Ele não pode ser usado para comandos Linux que exigem interação do usuário ou que são executados indefinidamente.

Os seguintes parâmetros opcionais podem ser usados para especificar o comando com antecedência.

Parâmetro Valores aceites Comentários
comando String Comando a ser executado na VM.
ignoreError Nenhuma Se esse sinalizador estiver presente, ignore os erros do comando.

Para obter mais informações, use o comando Get-Help Invoke-EflowVmCommand -full.

Provisão-EflowVm

O comando Provision-EflowVm adiciona as informações de provisionamento do dispositivo IoT Edge ao arquivo IoT Edge config.yaml da máquina virtual.

Parâmetro Valores aceites Comentários
Tipo de provisionamento ManualConnectionString, ManualX509, DpsTPM, DpsX509 ou DpsSymmetricKey Define o tipo de provisionamento que você deseja usar para seu dispositivo IoT Edge.
devConnString A cadeia de conexão de dispositivo de um dispositivo IoT Edge existente Cadeia de conexão de dispositivo para provisionar manualmente um dispositivo IoT Edge (ManualConnectionString).
iotHubHostname O nome do host de um hub IoT existente Nome de host do Hub IoT do Azure para provisionar um dispositivo IoT Edge (ManualX509).
deviceId O ID do dispositivo de um dispositivo IoT Edge existente ID do dispositivo para provisionar um dispositivo IoT Edge (ManualX509).
scopeId O ID de escopo para uma instância DPS existente. ID de escopo para provisionar um dispositivo IoT Edge (DpsTPM, DpsX509 ou DpsSymmetricKey).
symmKey A chave primária para um registro DPS existente ou a chave primária de um dispositivo IoT Edge existente registrado usando chaves simétricas Chave simétrica para provisionamento de um dispositivo IoT Edge (DpsSymmetricKey).
ID de registo A ID de registro de um dispositivo IoT Edge existente ID de registro para provisionamento de um dispositivo IoT Edge (DpsSymmetricKey, DpsTPM).
identityCertPath Directory path Caminho de destino absoluto do certificado de identidade em sua máquina host Windows (ManualX509, DpsX509).
identidadePrivKeyPath Directory path Caminho de origem absoluto da chave privada de identidade em sua máquina host Windows (ManualX509, DpsX509).
globalEndpoint URL do ponto de extremidade do dispositivo URL para Ponto Final Global a ser usado para provisionamento de DPS.

Para obter mais informações, use o comando Get-Help Provision-EflowVm -full.

Remove-EflowNetwork

O comando Remove-EflowNetwork remove uma rede existente conectada à máquina virtual EFLOW. Este comando usa um parâmetro.

Parâmetro Valores aceites Comentários
vswitchName Nome do comutador virtual Nome do comutador virtual atribuído à VM EFLOW.

Para obter mais informações, use o comando Get-Help Remove-EflowNetwork -full.

Remove-EflowVmEndpoint

O comando Remove-EflowVmEndpoint remove um ponto de extremidade de rede existente conectado à máquina virtual EFLOW. Este comando usa um parâmetro.

Parâmetro Valores aceites Comentários
vendpointName Nome do ponto de extremidade virtual Nome do ponto de extremidade virtual atribuído à VM EFLOW.

Para obter mais informações, use o comando Get-Help Remove-EflowVmEndpoint -full.

Remove-EflowVmSharedFolder

O comando Remove-EflowVmSharedFolder para de compartilhar a pasta do sistema operacional host do Windows com a máquina virtual EFLOW. Este comando precisa de dois parâmetros.

Parâmetro Valores aceites Comentários
sharedfolderRoot String Caminho para a pasta raiz compartilhada do sistema operacional host Windows.
hostFolderPath String ou Lista Caminho/caminhos relativos (para a pasta raiz) para a(s) pasta(s) compartilhada(s) do sistema operacional host Windows.

Para obter mais informações, use o comando Get-Help Remove-EflowVmSharedFolder -full.

Set-EflowVM

O comando Set-EflowVM atualiza a configuração da máquina virtual com as propriedades solicitadas. Use os parâmetros opcionais para definir uma configuração específica para a máquina virtual.

Parâmetro Valores aceites Comentários
cpuContagem Valor inteiro entre 1 e os núcleos de CPU do dispositivo Número de núcleos de CPU para a VM.
memóriaInMB Valor inteiro entre 1024 e a quantidade máxima de memória livre do dispositivo Memória alocada para a VM.
gpuNome Nome do dispositivo GPU Nome do dispositivo GPU a ser usado para passagem.
gpuPassthroughType DirectDeviceAssignment, ParaVirtualization ou nenhum (sem passagem) Tipo de passagem de GPU
gpuContagem Valor inteiro entre 1 e os núcleos de GPU do dispositivo Número de dispositivos GPU para a VM Nota: Válido apenas ao usar DirectDeviceAssignment
sem cabeça Nenhuma Se esse sinalizador estiver presente, ele determinará se o usuário precisa confirmar caso um aviso de segurança seja emitido.

Para obter mais informações, use o comando Get-Help Set-EflowVM -full.

Set-EflowVmDNSServers

O comando Set-EflowVmDNSServers configura os servidores DNS para a máquina virtual EFLOW.

Parâmetro Valores aceites Comentários
vendpointName Valor da cadeia de caracteres do nome do ponto de extremidade virtual Use o Get-EflowVmEndpoint para obter as interfaces virtuais atribuídas à VM EFLOW. Por exemplo, DESKTOP-CONTOSO-EflowInterface
dnsServers Lista de IPAddress do servidor DNS a utilizar para resolução de nomes Por exemplo, @("10.0.10.1")

Para obter mais informações, use o comando Get-Help Set-EflowVmDNSServers -full.

Set-EflowVmFeature

O comando Set-EflowVmFeature habilita ou desabilita o status dos recursos do IoT Edge para Linux no Windows.

Parâmetro Valores aceites Comentários
funcionalidade DpsTpm, Defensor Nome do recurso a ser alternado.
ativar Nenhuma Se esse sinalizador estiver presente, o comando habilitará o recurso.

Para obter mais informações, use o comando Get-Help Set-EflowVmFeature -full.

Set-EflowVmTelemetryOption

O comando Set-EflowVmTelemetryOption habilita ou desabilita a telemetria opcional dentro da máquina virtual.

Parâmetro Valores aceites Comentários
opcionalTelemetria Verdadeiro ou Falso Se a telemetria opcional está selecionada.

Para obter mais informações, use o comando Get-Help Set-EflowVmTelemetryOption -full.

Start-EflowVm

O comando Start-EflowVm inicia a máquina virtual. Se a máquina virtual já tiver sido iniciada, nenhuma ação será executada.

Para obter mais informações, use o comando Get-Help Start-EflowVm -full.

Parar-EflowVm

O comando Stop-EflowVm para a máquina virtual. Se a máquina virtual já estiver parada, nenhuma ação será executada.

Para obter mais informações, use o comando Get-Help Stop-EflowVm -full.

Verificar-EflowVm

O comando Verify-EflowVm é uma função exposta que verifica se o IoT Edge para Linux na máquina virtual Windows foi criado. Ele usa apenas parâmetros comuns e retornará True se a máquina virtual tiver sido criada e False se não.

Para obter mais informações, use o comando Get-Help Verify-EflowVm -full.

Próximos passos

Saiba como usar esses comandos para instalar e provisionar o IoT Edge para Linux no Windows no seguinte artigo: