Azure ARM 模板和 REST API

2023-12-27

我正在尝试学习 Azure 资源模板,并尝试了解何时使用它们以及何时使用 REST API 背后的工作流程。

我的感觉是,在 Azure 中创建虚拟网络和子网是相当罕见的情况,一旦您按照需要进行设置,就不会过于频繁地修改它,而是将内容部署到该结构中。

因此,对于 ARM 模板,假设我有一个包含 VNET 和子网资源的模板。举个例子https://learn.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-template-walkthrough#virtual-network-and-subnet https://learn.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-template-walkthrough#virtual-network-and-subnet我可能有:

{
"apiVersion": "2015-06-15",
"type": "Microsoft.Network/virtualNetworks",
"name": "[parameters('vnetName')]",
"location": "[resourceGroup().location]",
"properties": {
 "addressSpace": {
   "addressPrefixes": [
     "10.0.0.0/16"
   ]
 },
 "subnets": [
   {
     "name": "[variables('subnetName')]",
     "properties": {
       "addressPrefix": "10.0.0.0/24"
     }
   }
 ]
}
}

我将其部署到资源组。假设我随后添加负载均衡器并重新部署模板。在这种情况下,用户会被要求再次提供 vnetName 参数的值,当然不能提供相同的值,因此我们最终会得到另一个 VNET,这不是我们想要的。

那么,您的 ARM 模板(VNET、LB、子网、NIC 等)是一次性定义然后部署的工作流程吗?然后,当您想要部署虚拟机、规模集等时,您可以使用 REST API 来部署到资源组/VNET 子网吗?或者是否有一种方法可以逐步构建 ARM 模板并多次部署它,如果 VNET 已经存在(例如),则不会提示用户提供另一个模板的详细信息?

我已经阅读并看到了增量模式(除非指定完整,否则默认),但不确定这是否相关以及是否如何使用它。

非常感谢您的帮助!

Update

好的,我现在可以使用azure group deployment create -f azuredeploy.json -g ARM-Template-Tests -m Incremental并修改了我的模板中的 VNET 资源

{
  "apiVersion": "2016-09-01",
  "type": "Microsoft.Network/virtualNetworks",
  "name": "[variables('virtualNetworkName')]",
  "location": "[resourceGroup().location]",
  "properties": {
    "addressSpace": {
      "addressPrefixes": [
        "[variables('addressPrefix')]"
      ]
    },
    "subnets": [
      {
        "name": "[variables('subnetName')]",
        "properties": {
          "addressPrefix": "[variables('subnetPrefix')]"
        }
      }
    ]
  }
},

to

{
  "apiVersion": "2015-05-01-preview",
  "type": "Microsoft.Network/virtualNetworks",
  "name": "[parameters('virtualNetworkName')]",
  "location": "[resourceGroup().location]",
  "properties": {
    "addressSpace": {
      "addressPrefixes": [
        "[parameters('addressPrefix')]"
      ]
    },
    "subnets": [
      {
        "name": "[parameters('subnet1Name')]",
        "properties": {
          "addressPrefix": "[parameters('subnet1Prefix')]"
        }
      },
      {
        "name": "[parameters('gatewaySubnet')]",
        "properties": {
          "addressPrefix": "[parameters('gatewaySubnetPrefix')]"
        }
      }
    ]
  }
},

但子网不会改变。他们应该使用azure group deployment create -f azuredeploy.json -g ARM-Template-Tests -m Incremental


我将搭载这蔚蓝文档 https://learn.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-deploy。参考下面的相应部分:

增量部署和完整部署

在部署资源时, 您指定部署是增量更新还是 完成更新。默认情况下,资源管理器将部署处理为 对资源组的增量更新。

通过增量部署,资源管理器

  1. 保持不变资源组中存在但模板中未指定的资源
  2. adds模板中指定但资源组中不存在的资源
  3. 不重新配置资源组中存在的、与模板中定义的条件相同的资源
  4. 重新供应已更新模板中设置的现有资源

完成部署后,资源管理器:

  1. deletes资源组中存在但模板中未指定的资源
  2. adds模板中指定但资源组中不存在的资源
  3. 不重新配置资源组中存在的、与模板中定义的条件相同的资源
  4. 重新供应已更新模板中设置的现有资源

选择增量更新还是完全更新取决于您是否有正在使用的资源。如果 devops 要求始终使资源与 json 模板中定义的内容同步,那么Complete Update应使用模式。使用模板和源码部署资源的最大好处是防止配置漂移,有利于使用Complete Update mode.

至于指定参数,如果您在参数文件中指定,则不必再次指定它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure ARM 模板和 REST API 的相关文章

  • Azure 服务总线是否可能创建了该消息的副本?

    我们在 Azure 服务总线上遇到了一些奇怪的行为 除了 Azure 中的一些错误之外 我们无法弄清楚如何解释 这就是发生的事情 我们已向 Azure 服务总线发送过一次消息 发送消息的调用执行时间略长于一分钟 但仍然成功 并且此后消息收到
  • 如何在 Microsoft Azure Function 中创建类?

    可能这是一个错误的问题 但我需要创建一个模型 类并在天蓝色函数中访问相同的模型 类 我无法找到如何创建课程 类可以内联创建 因为它通常会在常规 C 项目中定义类 这是一个例子 https github com Azure azure web
  • 将网站部署到云服务的最佳实践

    在云服务上部署多个网站的最佳实践是什么 我有三个网站 是否可以将这三个网站部署到一个云服务中 一个云服务三个实例 或者我是否必须创建三个云服务并单独部署每个网站 谢谢 我的服务定义文件
  • MS Teams 应用程序:访问此应用程序时出现问题

    The users on MS Teams desktop reported multiple issues with our MS Teams app They see the following error on MS Teams De
  • 本地测试 Azure Active Directory 安全性

    我在 Azure 上部署了一个 Web 应用程序 并启用了 Azure Active Directory 安全性 快速设置 因此 当我尝试访问该应用程序时 我需要成为 AD 的一部分才能访问 我想向应用程序添加更多功能 例如显示当前登录的用
  • Azure Active Directory - 自定义策略错误

    我已按照此处提供的指南在 Azure AD B2C 中设置了自定义策略 https learn microsoft com azure active directory b2c active directory b2c setup sf a
  • Xamarin - SignalR 挂在连接上

    我正在尝试将我的 Xamarin 应用程序连接到托管在 Azure 上的 SignalR 后端 我遇到的问题是每次我在 HubConnection 上调用 StartAsync 时 它都会挂起客户端并且请求永远不会完成 我尝试通过应用程序进
  • 在门户中查看 Azure WebJob 计划?

    我创建了一个简单的 Azure WebJob 并通过 Visual Studio 集成制定了每天运行一次的计划 我已经部署了 WebJob 并看到它列在我在 Azure 上的应用程序中 schema http schemastore org
  • 容器中的 WordPress - 加载某些图像时出现 502

    我已使用容器将 WordPress 部署在 Azure AppService 中 使用 Azure 容器注册表 使用的图像来自 docker hub gt wordpress latest 我还启用了 settings WEBSITES E
  • 提供数组作为 devops 管道的参数

    我刚刚开始使用天蓝色管道 我们希望不再使用arm模板和参数文件手动部署Azure资源 而是使用devops管道来完成此任务 虽然使用单个模板 参数的 json 文件来完成此操作很简单 但我看不到处理多个文件的明智方法 我已经看到有关使用数组
  • 将 Azure 网站迁移到 Azure 云服务

    我有一个项目 我计划将 Web 应用程序作为 Azure 网站启动 然后将其迁移到 Azure 云服务 也称为托管服务 如果需要作为扩展策略 做出这个决定是因为我了解到 Azure 网站的开发更加简单 快速 几乎不需要特定于 Azure 的
  • 使用最新的 Javascript 代码片段时如何调用 addTelemetryInitializer?

    我正在尝试自定义综合浏览事件的名称属性 以前曾问过这个问题 例如如何为 Azure App Insights 中的页面视图事件提供自定义名称 https stackoverflow com questions 53778932 how to
  • 使用 Powershell 或 C# 获取 Azure“文件和文件夹”作业状态

    我一直在尝试找到一种方法来获取在 AzureRM 中运行的几个客户上运行的 文件和文件夹 备份作业的状态 可以在 AzureRm 门户中手动找到状态 恢复服务保管库 gt 作业 gt 备份作业 使用powershell不显示任何作业信息 G
  • 如何仅将 dist 文件夹部署到 azure 网站?

    我的 azure 网站项目中有 src 文件和 dist 文件夹 project src dist 默认行为上传项目内的所有文件 即 src 和 dist website src dist 我想保持网站干净 只包含 dist 文件 webs
  • 使用访问密钥的 REST Api 到 Azure Blob 存储

    我们正在尝试在不使用 Azure SDK 的情况下访问 azure blob 存储中的 blob 我们正在尝试通过 Azure REST API 通过共享密钥进行访问 为此我们需要生成授权标头 但是当我尝试从访问密钥创建签名时 出现以下错误
  • 如何将 Azure 映像从一个区域复制到另一个区域

    我在 Azure 区域 加拿大中部 的 Azure 映像中有一个 系统准备 通用 服务器模板 我想使用它在不同的 Azure 区域 美国中部 创建 Azure VM 这不起作用 因此 我需要将该 Azure 映像也驻留在美国中部 如何将我的
  • 带有 CosmosDBTrigger 的 Azure 函数似乎不是由 upsert 触发的

    我是第一次使用 Azure Functions 我正在尝试编写一个简单的函数来响应更改或添加到 CosmosDb 集合中的文档 我写的函数如下所示 FunctionName ChangeLog public static void Run
  • 是否可以从同一网络上的另一台计算机访问 Azure 模拟器?

    我正在运行带有 VS 2010 SP1 和 Windows Azure SDK 1 5 的 Windows 7 x64 我希望能够在连接到同一网络的 iPhone 上调试 Web 应用程序 以缩短调试周期 IIS 正在这台计算机上运行 并且
  • 如何结合 AD B2C(MSAL) 和 CosmosDB

    我在我的 Xamarin 表单应用程序中使用 appcenter Auth 和 Data 但微软正在关闭这些服务 所以我现在需要自己做 Atm 这两个允许我使用 ADB2C 验证我的用户 然后授予他们访问 Cosmos 数据库中自己和共享内
  • 部署到 azure 然后收到 403 - 访问禁止

    我正在尝试部署到 Azure Silverlight 应用程序 我已迁移数据库 更新连接字符串并将应用程序发布到 Azure 但是当我单击服务 URL 时 我得到以下信息 403 禁止 访问被拒绝 您无权使用您提供的凭据查看此目录或页面 知

随机推荐

  • 如何为来自同一链接的页面添加规范标签?

    我正在使用 symfony 1 0 6 在我的网站中 我有两个 URL http newe4s com news articles view 033 job news and information and http newe4s com
  • 从 DropdownButtonFormField 中删除下划线

    如何从 DropdownButtonFormField 中删除下划线 检查下面的照片 我尝试了 InputDecortaion 的各种选项组合 但找不到任何方法 SizedBox width 100 0 child DropdownButt
  • get/set 已被弃用,取而代之的是 config 命令

    在命令行中使用 angular cli 我执行了 ng set defaults styleExt styl 将默认样式设置为 Stylus 我得到了以下响应 get set 已被弃用 取而代之的是 config 命令 我想更改现有项目的样
  • Prolog递归过程解释

    如果可能的话 我希望有人解释这个过程 来自 立即学习序言 一书 它需要两个数字并将它们加在一起 add 0 Y Y add s X Y s Z add X Y Z 原则上我明白 但我有一些问题 假设我发出查询 add s s 0 s 0 R
  • 寻找一种有效的方法或算法来检查文件是否属于某个文件夹路径列表中的某个项目

    我有一个文件夹路径列表 此列表中可能有许多 数十个甚至数百个文件夹路径 例如 C Program Files 7 Zip many directories under C Program Files C ProgramData Adobe
  • 通过 microsoft webtest 上传文件

    我有一个 webtest 我打算用它来加载测试将文件上传到网站 我正在使用 Visual Studio 中内置的 WebTest 框架 目的是从 Azure 运行更大规模的测试 我创建了一个新的网络测试并记录了步骤 包括文件上传 这一切都记
  • 在哪里可以找到特定 Git 提交的快照?

    我了解到 Git 为每次提交保留一个快照 快照本质上是copies of changed文件和一些references to unchanged files 所有Git相关数据都存储在 git存储库目录内的目录 duong2179 mbpr
  • weakhashmap是如何工作的? [复制]

    这个问题在这里已经有答案了 就像weakhashmap如何理解对其键之一的引用现在已经过时一样 尤其是如果键是池化的字符串的话 您不能将字符串文字与 WeakHashMap 一起使用 当然可以 但这样做没有意义 String myKey s
  • 如何在 Swift 中的泛型扩展中使用带有可选类方法的协议?

    我正在尝试使用类方法对现有类进行扩展 例如 objc public protocol MyProtocol optional class func foo gt Int 我在扩展中使用这个协议 通用如下 extension MyClass
  • 如果会话超时,MVC 中的 jquery ajax 调用后如何重定向到新页面?

    1 我有一个调用操作的Ajax链接 该操作返回一个视图 该视图在特定的Div中打开 将其视为使用相应视图更新div的菜单 2 如果会话超时 则返回我的登录视图 因此 如果我单击链接并且会话超时 登录视图将在 div 中打开 而不是在整个页面
  • 每天执行一次查询

    基本上我有一个MySQL数据库 其中有一个表存储我网站用户的请求 我想自动执行一个查询 删除所有已完成的请求 已完成意味着该列Status 3 根据该列 超过 180 天ArchivingDate My Requests table Req
  • 六个月内保留的参与者百分比

    我是一名学校老师 对 MS SQL Server 非常陌生 每个人都建议尝试一下这个网站 开始 我正在尝试编写查询来测试参与学术项目的不同类型的结果衡量标准 我想尝试几种不同的方法来计算这个结果测量 我试图计算的结果是 在该计划的六个月内保
  • 如何在不同的计算机上克隆 RStudio 环境

    我最近一直在加快使用 R 的速度 并且想知道最有效的方法是将 RStudio 环境 尤其是软件包安装 从一台计算机克隆到另一台计算机 我希望能够从台式机切换到笔记本电脑 但我在工作时经常向台式机添加软件包 并且希望有一种简单的方法来确保在笔
  • Python 中的持久记忆

    我有一个昂贵的函数 它接受并返回少量数据 一些整数和浮点数 我已经memoized http en wikipedia org wiki Memoization这个功能 但我想让备忘录持久化 已经有几个与此相关的线程 但我不确定某些建议方法
  • avformat_open_input 返回值,NaCl 模块上的错误代码

    我正在尝试将 FFmpeg 移植到我的 NaCl 模块中 到目前为止 我的模块链接了 ffmpeg 和 SDL 库 它已经可以播放 YUV 格式的视频 该视频被直接加载到内存中并复制到 YUVOverlay 缓冲区中 这非常简单 现在 我想
  • Excel 转 PDF 无需 Office

    我需要在我正在开发的 Windows 应用程序中生成 PDF 报告 我通过将 xlsx 文件导出为 pdf 来完成此操作 不过 我目前正在为此使用互操作 我需要在不要求用户购买软件的情况下执行此操作 因此不需要 Microsoft Offi
  • 分配大(32mb)连续区域

    是否有可能在运行时从内核代码分配大的 即 32mb 物理连续的内存区域 即不使用 bootmem 从我的实验来看 无论我使用什么 GFP 标志 似乎都不可能成功获得超过 4mb 的块 根据我读过的文档 GFP NOFAIL 应该让 kmal
  • iOS 模拟器游戏运行速度非常慢(低 fps)

    深入研究 sprite 套件 xcode 5 我正在使用两个示例程序 1 创建新项目时包含的默认宇宙飞船示例 2 我下载的冒险游戏 在 iOS 模拟器中运行这些示例 似乎哪个并不重要 每个的帧速率绝对是糟糕的 如果我在太空船 hello w
  • 以相同的 C# 形式从 web 浏览器链接到 ScintillaNET 编辑器?

    我是 ScintillaNET 的新手 我以相同的形式使用 webbrowser 和 scintillaNET 编辑器组件 我的任务是当我单击网络浏览器中的链接时 它应该链接到编辑器中的文本 任何帮助和建议将不胜感激 提前致谢 None
  • Azure ARM 模板和 REST API

    我正在尝试学习 Azure 资源模板 并尝试了解何时使用它们以及何时使用 REST API 背后的工作流程 我的感觉是 在 Azure 中创建虚拟网络和子网是相当罕见的情况 一旦您按照需要进行设置 就不会过于频繁地修改它 而是将内容部署到该