Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O SDK do PowerShell Durable Functions autônomo (AzureFunctions.PowerShell.Durable.SDK) é a abordagem recomendada para criar aplicativos Durable Functions com o PowerShell. Ele substitui o SDK interno por uma lógica de reprodução mais rápida (o mesmo mecanismo do SDK isolado do C#), controle de versão independente e manipulação de exceção aprimorada, tratamento de valor nulo e serialização. O SDK interno permanece disponível para o PowerShell 7.4 e anterior, mas será removido em uma futura versão importante do worker do PowerShell.
Lista de verificação de migração
Use a seguinte lista de verificação para acompanhar seu progresso em cada etapa de migração:
| Passo | Seção |
|---|---|
| 1. Verificar pré-requisitos | Pré-requisitos |
| 2. Habilitar o SDK autônomo | Habilitar o SDK autônomo |
| 3. Instalar o pacote do SDK | Instalar o pacote do SDK |
| 4. Importar o SDK | Importar o SDK |
| 5. Executar seu aplicativo | Executar seu aplicativo |
| 6. Revise a interface e as alterações comportamentais | Migrar do SDK interno |
Instalar o SDK autônomo
Siga estas etapas para instalar e habilitar o SDK autônomo em seu aplicativo existente.
Verificar pré-requisitos
O SDK autônomo do PowerShell requer as seguintes versões mínimas:
- Runtime do Azure Functions v4.16+
- Azure Functions Core Tools v4.0.5095+ (se em execução localmente)
- Aplicativo powershell do Azure Functions para PowerShell 7.4 ou superior
Habilitar o SDK autônomo
A seguinte configuração de aplicativo é obrigatória para executar o SDK do PowerShell autônomo:
- Nome:
ExternalDurablePowerShellSDK - Valor:
"true"
Essa configuração de aplicativo desabilita o SDK Durável interno para as versões 7.4 e superiores do PowerShell, forçando o processo a usar o SDK externo.
Se você estiver executando localmente com o Azure Functions Core Tools, deverá adicionar essa configuração ao arquivo local.settings.json. Se você estiver executando no Azure, siga essas etapas com a ferramenta de sua preferência:
Substitua <FUNCTION_APP_NAME> e <RESOURCE_GROUP_NAME> pelo nome do seu aplicativo de funções e grupo de recursos, respectivamente.
az functionapp config appsettings set --name <FUNCTION_APP_NAME> --resource-group <RESOURCE_GROUP_NAME> --settings ExternalDurablePowerShellSDK="true"
Instalar o pacote do SDK
Você tem duas opções para instalar o pacote do SDK. Use dependências gerenciadas (recomendadas para a maioria dos aplicativos) ou incorpore o módulo ao conteúdo do seu aplicativo se você precisar especificar uma versão específica ou sua implementação não oferecer suporte a dependências gerenciadas. Apenas uma opção é necessária.
Opção 1: usar dependências gerenciadas (recomendado)
Para instalar o SDK como uma dependência gerenciada, siga as diretrizes de dependências gerenciadas.
Primeiro, verifique se seu host.json contém uma managedDependency seção com enabled configurada para true.
{
"version": "2.0",
"managedDependency": {
"enabled": true
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.*, 4.0.0)"
}
}
Em seguida, especifique uma entrada para o SDK em seu requirements.psd1 arquivo:
# This file enables modules to be automatically managed by the Functions service.
# See https://aka.ms/functionsmanageddependency for additional information.
#
@{
# For latest supported version, go to 'https://www.powershellgallery.com/packages/AzureFunctions.PowerShell.Durable.SDK/'.
'AzureFunctions.PowerShell.Durable.SDK' = '2.*'
}
Opção 2: Incluir o módulo SDK no conteúdo do aplicativo
Para agrupar o SDK com seu aplicativo, coloque o pacote do SDK dentro de um ".\Modules" diretório na raiz do aplicativo. Para obter mais informações, consulte Incluir módulos no conteúdo do aplicativo.
Na raiz do aplicativo, crie o diretório e baixe o SDK:
Save-Module -Name AzureFunctions.PowerShell.Durable.SDK -AllowPrerelease -Path ".\Modules"
Importar o SDK
Adicione a seguinte linha ao arquivo profile.ps1 para importar o SDK em cada inicialização a frio:
Import-Module AzureFunctions.PowerShell.Durable.SDK -ErrorAction Stop
Executar o aplicativo
Inicie seu aplicativo com func host start. O SDK autônomo agora está ativo.
Migrar do SDK interno
Se você estiver migrando um aplicativo existente do SDK interno, examine a interface e as alterações comportamentais a seguir.
Novos cmdlets
| Cmdlet | Descrição |
|---|---|
Invoke-DurableSubOrchestrator |
Chame suborquestradores a partir de um fluxo de trabalho de orquestração. |
Suspend-DurableOrchestration |
Suspender uma instância de orquestração em execução. |
Resume-DurableOrchestration |
Retome uma instância de orquestração suspensa anteriormente. |
Cmdlets modificados
| Mudar | Detalhes |
|---|---|
Get-DurableTaskResult |
Agora aceita um único Task como argumento em vez de uma lista de tarefas. |
New-DurableRetryOptions → New-DurableRetryPolicy |
Renomeado. Um alias para o nome antigo é fornecido para compatibilidade com versões anteriores. |
Alterações comportamentais
Tratamento de exceção em Wait-DurableTask
Exceções geradas por atividades agendadas com Wait-DurableTask (padrão fan-out/fan-in) não são mais ignoradas silenciosamente. O cmdlet agora propaga a exceção para o orquestrador para que você possa lidar com ele em seu código.
SDK interno – exceções foram suprimidas silenciosamente.
# Exceptions from failed activities were lost
$tasks = @()
$tasks += Invoke-DurableActivity -FunctionName "RiskyActivity" -Input "item1" -NoWait
$tasks += Invoke-DurableActivity -FunctionName "RiskyActivity" -Input "item2" -NoWait
$results = Wait-DurableTask -Task $tasks
# No error even if an activity failed
SDK autônomo — exceções são propagadas para o orquestrador:
try {
$tasks = @()
$tasks += Invoke-DurableActivity -FunctionName "RiskyActivity" -Input "item1" -NoWait
$tasks += Invoke-DurableActivity -FunctionName "RiskyActivity" -Input "item2" -NoWait
$results = Wait-DurableTask -Task $tasks
} catch {
# Handle the activity failure
Write-Host "An activity failed: $_"
}
Valores nulos preservados em Wait-DurableTask resultados
Valores nulos não são mais removidos da lista de resultados de uma Wait-DurableTask invocação (WhenAll). Uma chamada bem-sucedida sem o -Any sinalizador agora retorna uma matriz do mesmo tamanho do número de tarefas agendadas, incluindo $null entradas para atividades que retornaram nulo.
SDK interno – os resultados nulos foram descartados:
# 3 tasks scheduled, but if one returned $null, results had only 2 items
$results = Wait-DurableTask -Task $tasks
$results.Count # Could be 2 instead of 3
SDK autônomo – os resultados nulos são preservados:
# 3 tasks scheduled, results always has 3 items
$results = Wait-DurableTask -Task $tasks
$results.Count # Always 3, with $null for activities that returned null
Referência do SDK
Para obter a referência completa do cmdlet, consulte AzureFunctions.PowerShell.Durable.SDK Module. Depois de importar o módulo, você também pode executar Get-Help *-Durable* para listar todos os cmdlets disponíveis ou Get-Help <cmdlet-name> -Full para uso detalhado.
Obtenha suporte
Relatar bugs e solicitações de recursos no repositório GitHub do SDK.
Próximas Etapas
- Criar um aplicativo Durable Functions com o PowerShell
- Padrões e conceitos de funções duráveis
- Referência para desenvolvedores PowerShell para Azure Functions