Azure ARM 模板:功能限制,如何检测?
Azure ARM Template: limitation on feature, how to detect?
仍在学习如何使用 ARM 模板执行 InfraAsCode。
根据我阅读的 MS 文档,我了解到 ARM 无法完成我通常使用 Powershell 完成的所有工作,并且我发现在这种情况下很难检测到 ARM 限制。
让我解释一下我的理解,如果有人可以确认,那将有所帮助。
- 我在 Portal 中设置了我想要的资源并根据需要进行配置
- 然后从我的资源中,我单击“自动化”>“导出模板”
- 现在我可以看到 ARM 如何部署我的资源了。
我注意到在步骤 1 中进行的一些配置没有在步骤 3 中列出。
这是否意味着我发现了 ARM 限制,因此剩余的项目必须使用 Powershell(或 Azure CLI)完成?
具体例子:
- 使用应用服务,我可以从 Azure 门户Authentication/Authorization配置
- 当我点击导出模板时,没有任何与我的 Authentication/Authorization
相关的内容
因此:部署我的 ARM 模板后,我需要做一些额外的事情来完成 Authentication/Authorization。我说得对吗?
感谢
简短的回答是“视情况而定”。 Azure 中有 2 api 个表面,一个是“控制平面”,另一个是“数据平面”。很短,但是控制平面可以让您对资源(虚拟机、存储、站点)进行 CRUD,而数据平面可以让您对数据进行 CRUD(blob、文件、keyVault、appConfig、sql 数据)。
控制平面中的任何内容都可以通过 ARM 模板完成。门户中的大部分内容都是在幕后使用 ARM 模板完成的,但这与您在执行“导出”时看到的模板不同。
门户中的导出对资源的当前状态执行 API GET,最好创建一个模板。由于 missing/incomplete 模式、秘密、只写属性(不通过 GET 返回),这并不总是可能的。所以这是最大的努力。
要查看使用的模板(如果使用过的话),您可以查看对资源组完成的部署,在每个部署中您可以看到实际使用的模板。它不会有秘密,但它可能有额外的设置,您需要为其提供秘密(在这种情况下为 authn)。
所以这里的路径是查看门户在您创建资源时是否使用了模板,并将其用作重新创建资源的参考。它可能不是像 export 给你的单一模板(它将是原始状态,而不是当前状态)但应该填补空白。
有帮助吗?
仍在学习如何使用 ARM 模板执行 InfraAsCode。 根据我阅读的 MS 文档,我了解到 ARM 无法完成我通常使用 Powershell 完成的所有工作,并且我发现在这种情况下很难检测到 ARM 限制。
让我解释一下我的理解,如果有人可以确认,那将有所帮助。
- 我在 Portal 中设置了我想要的资源并根据需要进行配置
- 然后从我的资源中,我单击“自动化”>“导出模板”
- 现在我可以看到 ARM 如何部署我的资源了。
我注意到在步骤 1 中进行的一些配置没有在步骤 3 中列出。 这是否意味着我发现了 ARM 限制,因此剩余的项目必须使用 Powershell(或 Azure CLI)完成?
具体例子:
- 使用应用服务,我可以从 Azure 门户Authentication/Authorization配置
- 当我点击导出模板时,没有任何与我的 Authentication/Authorization 相关的内容
因此:部署我的 ARM 模板后,我需要做一些额外的事情来完成 Authentication/Authorization。我说得对吗?
感谢
简短的回答是“视情况而定”。 Azure 中有 2 api 个表面,一个是“控制平面”,另一个是“数据平面”。很短,但是控制平面可以让您对资源(虚拟机、存储、站点)进行 CRUD,而数据平面可以让您对数据进行 CRUD(blob、文件、keyVault、appConfig、sql 数据)。
控制平面中的任何内容都可以通过 ARM 模板完成。门户中的大部分内容都是在幕后使用 ARM 模板完成的,但这与您在执行“导出”时看到的模板不同。
门户中的导出对资源的当前状态执行 API GET,最好创建一个模板。由于 missing/incomplete 模式、秘密、只写属性(不通过 GET 返回),这并不总是可能的。所以这是最大的努力。
要查看使用的模板(如果使用过的话),您可以查看对资源组完成的部署,在每个部署中您可以看到实际使用的模板。它不会有秘密,但它可能有额外的设置,您需要为其提供秘密(在这种情况下为 authn)。
所以这里的路径是查看门户在您创建资源时是否使用了模板,并将其用作重新创建资源的参考。它可能不是像 export 给你的单一模板(它将是原始状态,而不是当前状态)但应该填补空白。
有帮助吗?