Webhostingtalk资讯网

Azure资源管理器模板参考资料介绍

2017-09-04 14:33
作者:admin

复制版块

当我们部署资源时,我们可能只需要一种资源,但更有可能会想要创建一些类似于虚拟机的资源。 为此,我们可以利用指定了我们需要的某种资源的副本数的“复制”版块。这一点很有帮助,因为这意味着,即便我们需要100台虚拟机,我们也不必在ARM模板中定义100种资源。相反,您只要往您的资源中添加一个如下的复制块即可:

上图指出我们应该创建3个存储帐户。 这里有两件事要注意:首先,鉴于我们说要“创建三个副本”,所以我们需要为三个对象创建独一无二的名称。 这样做了以后,我们就可以添加作为复制操作ID的copyIndex,而不是单单使用帐户名称变量了。 而我们这样做是因为,如果我们将1传递给copyIndex函数,那么它就是从1而不是0开始计算的,所以我们得到的会是账户名称1、账户名称2和账户名称3。

第二点要注意的是,复制块是设有名字的。这十分有用,因为我们可以在dependsOn块中使用它,并且依赖资源在所有的三个存储帐户创建完毕之后才会被创建。 这在某些情况下很有帮助,如创建一些虚拟机,而您部署首台虚拟机所花费的时间要比部署最后一台虚拟机的时间更长。如果您不具备通过副本名称进行引用的能力,那您就需要分别为所有会快速变混乱的资源添加dependsOn。

条件

条件是ARM模板最近添加的一个版块,它们能告诉您是否需要部署特定的资源。这在处理不同的环境时非常有用,因为在这些环境内部的开发过程中,您可能只需要一个不带有负载均衡器的虚拟机,但是在生产过程中,您却可能需要五台带有负载均衡器的虚拟机。 要使用同一模板,您可以将数字作为参数传入模板,但在选择是否部署负载均衡器时,您可以在条件属性中输出false(错误)。

在上述例子中,我们设置了一个“条件”属性来检查参数是否被设置为“是”。

当然,您应该谨慎使用条件属性,而且我建议您在生产之前至少设置一个部署了整个模板的环境,因为它们会填补缺失的需求以及之前包含将整个JSON blob传入为参数的需求的空缺。

如何开始?

有几种方法都可以助您开始,但最简单的要属使用微软创建的快速入门模板了,因为该模板为您提供了如何使用大多数资源的示例。 您可以点击以下链接获取该快速入门模板:

第二种方法是部署一些资源:在azure portal中,有一个名为“自动化脚本”的按钮,它将为您生成可以部署整个资源组的ARM模板。即便您点击了某个特定资源上的“自动化脚本”, 这还是会为整个资源组创建一个脚本。

不过,并不是每个资源类型都可以在当下被生成,但是微软似乎正在不断增加他们生成ARM模板的资源范围。 所以,您仅需等上几个星期便可。

在我看来,自动化脚本并不会生成理想的模板。它们的名称很奇怪,而且即便它们将名称置于参数之后,但它们还是会使用参数名称中的资源名称,因此您很难阅读和编辑脚本。所以,我认为它们最适合用于显示资源的配置方式、从脚本中获取您需要重新使用的部分、以及手动创建模板的其它部分或使用公司共享模板来创建ARM 模板。

自动化还可以生成可由不同客户端使用的脚本,如PowerShell、Bash和C#。 这将为您提供用于将ARM模板发送至ARM REST API进行处理时所需的代码。 不过,这些也都是累赘而已,您其实并不是什么都需要去做。比如,如果您使用的是PowerShell,那么您真正需要做的就是创建资源组(在它不存在的情况下),然后从 AzureRM模块中调用“New-AzureRmResourceGroupDeployment”即可。

参考资料

您可在以下文档中查看相对于实际资源的ARM模板功能:

docs.microsoft.com/en-us/azure/azure-resource-manager/

您可在以下文档中查看资源及其属性:

docs.microsoft.com/en-us/azure/templates /

该文档只记录了最新版本的API。 有关在某一资源的ARM模板中可用且不可用功能的具体信息,您可以通过JSON模式进行查看:

github.com/Azure/azure-resource-manager-schemas

虽然这些模式并不像文档页面那么容易理解,但它们却真能为您提供有关部署限制的具体信息。相关阅读:可以在ARM模板中做什么

有时候,REST API在文档发布之前就已经进行升级了。所以,如果您使用的是处于最前沿的技术,那可以查看REST API文档,以知晓您可以设置哪些属性,然后将它们置于ARM模板中对您来说是很幸运的。

网友评论
暂无评论!