@@ -218,7 +218,8 @@ function getResourceViaARMAPI {
218218 Param (
219219 [Parameter (Mandatory = $true )][string ]$resourceId ,
220220 [Parameter (Mandatory = $true )][string ]$apiVersion ,
221- [Parameter (Mandatory = $false )][string ]$token
221+ [Parameter (Mandatory = $false )][string ]$token ,
222+ [parameter (Mandatory = $false )][int ]$maxRetry = 3
222223 )
223224 $uri = " https://management.azure.com{0}?api-version={1}" -f $resourceId , $apiVersion
224225 Write-Verbose " [$ ( getCurrentUTCString) ]: Trying getting resource via the Resource provider API endpoint '$uri '" - Verbose
@@ -228,14 +229,18 @@ function getResourceViaARMAPI {
228229 $headers = @ {
229230 ' Authorization' = " Bearer $token "
230231 }
231- try {
232- $request = Invoke-WebRequest - Uri $uri - Method " GET" - Headers $headers
233- if ($request.StatusCode -ge 200 -and $request.StatusCode -lt 300 ) {
234- $resourceExists = $true
232+ $retryCount = 0
233+ do {
234+ try {
235+ $request = Invoke-WebRequest - Uri $uri - Method " GET" - Headers $headers
236+ if ($request.StatusCode -ge 200 -and $request.StatusCode -lt 300 ) {
237+ $resourceExists = $true
238+ }
239+ } catch {
240+ $resourceExists = $false
235241 }
236- } catch {
237- $resourceExists = $false
238- }
242+ $retryCount ++
243+ } while (-not $resourceExists -and $retryCount -lt $maxRetry )
239244 if ($resourceExists ) {
240245 $resource = ($request.Content | ConvertFrom-Json - Depth 99 )
241246 }
@@ -250,7 +255,8 @@ function newResourceGroupViaARMAPI {
250255 [Parameter (Mandatory = $true )][string ]$location ,
251256 [Parameter (Mandatory = $false )][hashtable ]$tags ,
252257 [Parameter (Mandatory = $false )][string ]$token ,
253- [Parameter (Mandatory = $false )][string ]$apiVersion = ' 2021-04-01'
258+ [Parameter (Mandatory = $false )][string ]$apiVersion = ' 2021-04-01' ,
259+ [parameter (Mandatory = $false )][int ]$maxRetry = 3
254260 )
255261 $uri = " https://management.azure.com/subscriptions/{0}/resourceGroups/{1}?api-version={2}" -f $subscriptionId , $resourceGroupName , $apiVersion
256262 Write-Verbose " [$ ( getCurrentUTCString) ]: Trying creating resource group via the Resource provider API endpoint '$uri '" - Verbose
@@ -268,15 +274,19 @@ function newResourceGroupViaARMAPI {
268274 $body.tags = $tags
269275 }
270276 $body = $body | ConvertTo-Json - Depth 10
271- try {
272- $request = Invoke-WebRequest - Uri $uri - Method " PUT" - Headers $headers - Body $body
273- if ($request.StatusCode -ge 200 -and $request.StatusCode -lt 300 ) {
274- $resourceGroupCreated = $true
277+ $retryCount = 0
278+ do {
279+ try {
280+ $request = Invoke-WebRequest - Uri $uri - Method " PUT" - Headers $headers - Body $body
281+ if ($request.StatusCode -ge 200 -and $request.StatusCode -lt 300 ) {
282+ $resourceGroupCreated = $true
283+ }
284+ } catch {
285+ Write-Error $_.Exception.Message
286+ $resourceGroupCreated = $false
275287 }
276- } catch {
277- Write-Error $_.Exception.Message
278- $resourceGroupCreated = $false
279- }
288+ $retryCount ++
289+ } while (-not $resourceGroupCreated -and $retryCount -lt $maxRetry )
280290 if ($resourceGroupCreated ) {
281291 Write-Verbose " Resource group '$resourceGroupName ' created successfully." - Verbose
282292 $resourceGroupId = ($request.Content | ConvertFrom-Json - Depth 99 ).id
0 commit comments