【Azure 环境】部署ARM Linked Template时候 Blob SAS Token不能正常工作

本文涉及的产品
云防火墙,500元 1000GB
简介: Unable to retrieve url https://<stroage account name>.blob.core.chinacloudapi.cn/arm/azuredeploy.json?sp=r'st' is not recognized as an internal or external command,operable program or batch file.'se' is not recognized as an internal or external command,operable program or batch file.'spr' is no

问题描述

通过AZ CLI指令部署ARM模板,使用 Linked Template ,并且把模板文件存放到Storage Account中。然后调用 az deployment group create  指令部署模板。

 

部署指令:

$sasToken =  ' <SAS Token>

az deployment group create   --name DeployLinkedTemplate   --resource-group "armtest-rg"  --template-uri "https://<stroage account name>.blob.core.chinacloudapi.cn/arm/azuredeploy.json" --parameters projectName=armtestpjname    --query-string $sasToken   --verbose

但是,在Windows环境中执行,会遇见如下错误:

Unable to retrieve url https://<stroage account name>.blob.core.chinacloudapi.cn/arm/azuredeploy.json?sp=r

'st' is not recognized as an internal or external command,

operable program or batch file.

'se' is not recognized as an internal or external command,

operable program or batch file.

'spr' is not recognized as an internal or external command,

operable program or batch file.

'sv' is not recognized as an internal or external command,

operable program or batch file.

'sr' is not recognized as an internal or external command,

operable program or batch file.

'sig' is not recognized as an internal or external command,

operable program or batch file.

 

问题解答

需要使用单引号来包含SAS Token的内容,并且由于内容中包含了&符号,而 “&” 在 CMD/Powershell中是与运算符,需要使用双引号进行转移 [   “&”   ],  所以需要把包含&符号的字符串修改为

 $sasToken =  'sp=r"&"st=2025-02-14T07:46:18Z"&"se=2025-02-14T15:46:18Z"&"spr=https"&"sv=2022-11-02"&"sr=c"&"sig=xxxxxxxxxxxxxxxxxxxxxxxxxxx'

修改之后,就能成功执行!

 

附录:存放Linked Template文件的存储账号不能启用防火墙

原因在于当执行 az deployment group create 指令时,会由 ARM Provider 的运行环境来获取存储在Blob中的模板文件,由于ARM Provider主机的IP地址由IPv4,IPv6,且资源如果与存储账号在同一个区域时,会由Azure内部的骨干网直接内网访问,没有公网IP地址。

当为存储账号启用防火墙后,因为如下两个原因无法访问模板文件:

一:防火墙白名单中无法配置IPv6地址,内网地址

二:ARM Provider资源不支持VNET配置且由Azure管理,该资源没有被加入到Storage Account受信任的访问列表中

 

参考资料

  1. az deployment does not work with SAS tokens for template-uri : https://stackoverflow.com/questions/53337127/az-deployment-does-not-work-with-sas-tokens-for-template-uri
  2. 无法链接到位于 Azure 存储防火墙后面的存储帐户中的模板 : https://docs.azure.cn/zh-cn/azure-resource-manager/templates/linked-templates?tabs=azure-powershell#securing-an-external-template
  3. Trusted access for resources registered in your Microsoft Entra tenant: https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security?tabs=azure-portal#trusted-access-for-resources-registered-in-your-microsoft-entra-tenant
  4. Azure IP Ranges and Service Tags – China Cloud : https://www.microsoft.com/en-us/download/details.aspx?id=57062

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
3月前
|
前端开发 iOS开发 MacOS
macOS 13+ ARM版电脑零接触部署问题解决方法
macOS 13+ ARM版电脑使用MDM工具零接触部署
|
5月前
|
Kubernetes 应用服务中间件 nginx
鲲鹏Arm+麒麟V10,国产化信创 K8s 离线部署保姆级教程
Rainbond V6 国产化部署教程,针对鲲鹏 CPU + 麒麟 V10 的离线环境,手把手教你从环境准备到应用上线,所有依赖包提前打包好,步骤写成**傻瓜式**操作指南。别说技术团队了,照着文档一步步来,让你领导来都能独立完成部署。
鲲鹏Arm+麒麟V10,国产化信创 K8s 离线部署保姆级教程
|
5月前
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
394 10
|
5月前
|
存储 机器学习/深度学习 数据库
阿里云服务器X86/ARM/GPU/裸金属/超算五大架构技术特点、场景适配参考
在云计算技术飞速发展的当下,云计算已经渗透到各个行业,成为企业数字化转型的关键驱动力。选择合适的云服务器架构对于提升业务效率、降低成本至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供大家了解和选择参考。
931 61
|
6月前
|
存储 机器学习/深度学习 算法
阿里云X86/ARM/GPU/裸金属/超算等五大服务器架构技术特点、场景适配与选型策略
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别。本文将深入解析这些架构的特点、优势及适用场景,帮助用户更好地根据实际需求做出选择。
|
8月前
|
弹性计算 编解码 运维
飞天技术沙龙回顾:业务创新新选择,倚天 Arm 架构深入探讨
飞天技术沙龙回顾:业务创新新选择,倚天 Arm 架构深入探讨
126 1
|
9月前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器ECS架构区别及选择参考:X86计算、ARM计算等架构介绍
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别,本文主要简单介绍下这些架构各自的主要性能及适用场景,以便大家了解不同类型的架构有何不同,主要特点及适用场景有哪些。
1258 10
|
10月前
|
人工智能 芯片 Windows
ARM架构PC退货率与CEO策略透视
ARM架构PC退货率与CEO策略透视
|
11月前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器架构有啥区别?X86计算、Arm、GPU异构、裸金属和高性能计算对比
阿里云ECS涵盖x86、ARM、GPU/FPGA/ASIC、弹性裸金属及高性能计算等多种架构。x86架构采用Intel/AMD处理器,适用于广泛企业级应用;ARM架构低功耗,适合容器与微服务;GPU/FPGA/ASIC专为AI、图形处理设计;弹性裸金属提供物理机性能;高性能计算则针对大规模并行计算优化。
666 7

热门文章

最新文章