如何测试Azure存储帐户网络规则实际生效的时间

lstz6jyr  于 2023-03-13  发布在  其他
关注(0)|答案(1)|浏览(124)

我有一个管道,可以将代理的当前IP添加到存储帐户的网络规则白名单中,其中包含:

az storage account network-rule add

然后,它会立即移动到下一个任务,该任务需要在存储帐户的容器之一内进行访问。由于网络规则在5-30秒的时间段内生效,因此该任务需要重试逻辑,因为它几乎总是返回:

autorest/azure: Service returned an error. Status=403 Code="AuthorizationFailure" Message="This request is not authorized to perform this operation

经过足够的时间和重试,然后任务将愉快地继续。我想知道是否有一个推荐的方法来编写一个循环,测试对容器的访问,只有在防火墙规则实际应用时才退出循环。

tag5nh1u

tag5nh1u1#

我在自己的环境中尝试,得到了以下结果:

如何测试Azure存储帐户网络规则实际生效的时间
应用网络规则后,您可以使用下面的powershell命令来测试对容器的访问。

命令:

$storageAccountName = ""
$resourceGroupName = ""
$containerName = ""
$currentIP = ""
$storageAccountKey=""
 # Add the current IP to the network rule
az storage account network-rule add --resource-group $resourceGroupName --account-name $storageAccountName --ip-address $currentIP

Start-Sleep -Seconds 30

 # Wait for the network rule to take effect
while ($true)
{
    # Test access to the container
    try {
        Get-AzStorageBlob -Container $containerName -Context (New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey)
# If the access is successful, exit the loop
       break
    }
    catch {
        # Wait for 10 seconds before trying again
        Start-Sleep -Seconds 5
    }
}

输出:

门户网站:

相关问题