Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Alcune risorse Azure incontrano errori transitori durante il deployment, come ritardi di replica che si risolvono dopo uno o più tentativi. Il @retryOn decorator riprova a distribuire una risorsa quando vengono restituiti codici di errore specifici, senza richiedere soluzioni alternative come script di distribuzione o template separati.
Syntax
@retryOn(<errorCodes> [, <retryCount>])
resource <symbolicName> '<resourceType>@<apiVersion>' = {
...
}
| Parametro | TIPO | Description |
|---|---|---|
errorCodes |
array | Una lista di stringhe di codice di errore che attivano un ritentativo. |
retryCount |
int (opzionale) | Numero massimo di tentativi. Il valore predefinito è 30 tentativi. Se specificato, limitato a un massimo di 30. |
Example
L'esempio seguente ripete la distribuzione dell'account di archiviazione fino a 10 volte quando viene restituito ResourceNotFound:
@retryOn(['ResourceNotFound'], 10)
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: 'srp1'
location: location
sku: {
name: 'Premium_LRS'
}
kind: 'BlobStorage'
}
Uso con loop
@retryOn funziona con i for loop e il decoratore @batchSize. Quando usi @batchSize, il comportamento di ritentazione si applica a ogni lotto di risorse.
@retryOn(['ResourceNotFound'], 10)
@batchSize(2)
resource vwanHub 'Microsoft.Network/virtualHubs@2024-01-01' = [for i in range(0, 4): {
name: 'vwan-hub-${regionNamePrefix}-${i}'
location: region
tags: defaultTags
properties: {
addressPrefix: vwanHubCIDR
}
}]