首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure资源管理器无法下载模板

Azure资源管理器无法下载模板
EN

Stack Overflow用户
提问于 2020-10-22 16:30:27
回答 2查看 307关注 0票数 0

出于测试目的,我们使用PS脚本将我们的ARM模板部署到测试资源组。

代码语言:javascript
复制
$ctx = New-AzStorageContext -StorageAccountName $storageAccountName -UseConnectedAccount
$sasToken = New-AzStorageContainerSASToken -Context $ctx  -Name $containerName -Permission r -ExpiryTime (Get-Date).AddHours(1)

$toDeploy = "app1", "app2"
foreach ($template in $toDeploy) {
    $templateUri = "${containerUrl}/${template}.json${sasToken}"
    $templateParameterUri = "${containerUrl}/${template}.parameters.Integration.json${sasToken}"
    $templatePostUri = "${containerUrl}/${template}.Post.json${sasToken}"
    
    New-AzResourceGroupDeployment -ResourceGroupName $resourceGroup `
        -TemplateUri $templateUri `
        -TemplateParameterUri $templateParameterUri `
        -Mode Incremental `
        -DeploymentDebugLogLevel All `
        -Name "TestDeployment" `
        -Verbose

    New-AzResourceGroupDeployment -ResourceGroupName $resourceGroup `
        -TemplateUri $templatePostUri `
        -Mode Incremental `
        -DeploymentDebugLogLevel All `
        -Name "TestDeploymentPost" `
        -Verbose

它适用于3个开发人员中的2个。当我们中的一个人执行此操作时,会显示一个错误,说明到模板的链接无效。ARM无法下载它。

代码语言:javascript
复制
Error: Code=InvalidContentLink; Message=Unable to download deployment content from
     | 'https://ourstorage.blob.core.windows.net/user-testing/app1.json?SAS_TOKEN_HERE'. The tracking Id is '386e7670-1863-4c85-9484-8a27d2dd0760'.

但当我们将其复制到浏览器时,我们可以下载它。我们三个人。由于某些原因,只有ARM不能下载它。当存储帐户配置为具有公共访问权限,并且我们从链接中删除SAS令牌时,它将在此开发人员的计算机上工作。因此,从一台计算机生成SAS令牌似乎存在一些问题。但是为什么这个SAS令牌对我们(3个开发者)是可以的,但是对ARM是无效的呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-24 22:42:58

所以问题是时钟漂移。我在另一台机器上尝试了一下,收到了同样的错误,但这一次我甚至无法使用浏览器下载模板。但它给了我错误信息- SAS令牌无效。根据ARM的说法,它的开始时间是在未来。

解决方案是添加-StartTime (Get-Date).AddMinutes(-2)

看起来在这台机器上时钟更短,这样我就可以在浏览器中发现问题(以后会有更多的令牌)。对于其他PC,当我们将指向模板的链接粘贴到浏览器令牌中时,令牌已经很好了,所以看起来只有ARM是错误的。

票数 1
EN

Stack Overflow用户

发布于 2020-10-23 21:12:58

检查存储帐户上的防火墙设置。它将需要允许从All networks访问。我已经看到了完全相同的情况和错误消息,因为我们的开发人员可以通过允许的IP访问,但ARM不能。在Microsoft为“Azure Resource Manager for template deployment”启用存储帐户之前,ARM将无法访问防火墙后的存储内容,即使使用SAS令牌也是如此。

虽然下面的引用是关于链接的ARM模板,但它仍然适用于通过URI进行部署。“目前,你无法链接到位于Azure存储防火墙后的存储帐户中的模板。”--来源:https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/linked-templates#securing-an-external-template

关于GitHub的问题讨论:https://github.com/MicrosoftDocs/azure-docs/issues/37309

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64478268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档