Azure 自动化清除 CDN 终结点

时间:2021-02-05 12:57:24

标签: azure events automation azure-storage-blobs

我正在尝试部署 Azure 自动化 Runbook,目的是在我对 Blob 存储进行更改时清除所有缓存。到目前为止,如果我从 azure 门户 1 文件上传,效果很好。但是,如果我尝试上传多个文件,其中一些文件会因以下错误而失败。

We can only accept 100 paths for purging concurrently. Please try again in a few minutes.

这是我在自动化 Runbook 过程中使用的代码:

param (
    [Parameter (Mandatory = $false)]
    [object] $WebHookData
)

## Authentication ##

# Runbook must authenticate to purge content
# Connect to Azure with RunAs account
$conn = Get-AutomationConnection -Name "AzureRunAsConnection"

# Connect to Azure Automation
$null = Add-AzAccount `
  -ServicePrincipal `
  -TenantId $conn.TenantId `
  -ApplicationId $conn.ApplicationId `
-CertificateThumbprint $conn.CertificateThumbprint


## declarations ##

# Update parameters below
# CDN Profile name
$profileName = "<CDNProfileName>"
# CND Resource Group
$resourceGroup = "<Resource-Group>"
# CDN Endpoint Name
$endPointName = "<EndPointName>"

# Set Error Action Default
$errorDefault = $ErrorActionPreference

## Execution ##

# Convert Webhook Body to json
try {
    $requestBody = $WebHookData.requestBody | ConvertFrom-json -ErrorAction 'stop'
}
catch {
    $ErrorMessage = $_.Exception.message
    write-error ('Error converting Webhook body to json ' + $ErrorMessage)
    Break
}
# Convert requestbody to file path

try {
    $ErrorActionPreference = 'stop'
    $filePath = $requestBody.data.url -replace "https://<storageaccountname>.blob.core.windows.net",""
}
catch {
    $ErrorMessage = $_.Exception.message
    write-error ('Error converting file path ' + $ErrorMessage)
    Break
}
finally {
    $ErrorActionPreference = $errorDefault
}
# Run the purge command against the file
try {
    Unpublish-AzCdnEndpointContent -ErrorAction 'Stop' -ProfileName $profileName -ResourceGroupName $resourceGroup `
    -EndpointName $endPointName -PurgeContent '/*'
}
catch {
    $ErrorMessage = $_.Exception.message
    write-error ('Error purging content from CDN ' + $ErrorMessage)
    Break
}

任何人都可以对此提供帮助或向我澄清清除因该错误而失败的原因(“BadRequest”)

非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

the article about CDN purge enpoint 底部:

<块引用>

使用 Azure CDN 处理清除请求大约需要 10 分钟 来自 Microsoft,使用来自 Verizon 的 Azure CDN 大约 2 分钟 (标准和高级),使用 Azure CDN 大约 10 秒 来自 Akamai。 Azure CDN 有 100 个并发清除请求的限制 在个人资料级别的任何给定时间

在配置文件级别的任何给定时间都有 100 个并发清除请求的限制。