ARM模板 - 取决于资源组外部的资源

时间:2016-11-10 11:21:23

标签: azure azure-resource-manager arm-template azure-resource-group

以下是我在Azure上的内容:

Resource group: 'microservice-1'
App Service: 'app-service-1'
Database: 'database-1'

Resource group: 'microservice-2'
App Service: 'app-service-2'
Database: 'database-2'

Resource group: 'shared-infrastructure'
Database: 'shared-database-1'

两个微服务都使用shared-database-1。每个微服务都包含ARM模板脚本,用于创建/更新部署微服务时使用的资源组。在ARM脚本中,我们可以定义依赖项(dependsOn),以便使用正确的顺序更新资源,但这只能在资源组中使用。

这是我想要运行的场景:
Azure中没有任何内容,我想发布microservice-1。有没有 我可以使用Azure / ARM中的机制,以便shared-infrastructure 发布(ARM模板)在microservice-1之前运行?

1 个答案:

答案 0 :(得分:1)

不,除非您在ARM模板中明确包含该内容。 DependOn只是检查资源是否存在,它不会为你神奇地创建它。

但是你可以在你的模板中包含它,如果它存在,它将不会做任何事情,除非你指定deploymentmode = complete。

因此,您可以创建3个模板,用于microservice-1,microservice-2和共享基础架构。在您的微服务模板中,您可以包括部署以创建共享基础架构,如果已经就位,它将无法执行此操作

根据评论进行编辑:

您可以在部署后链接同一订阅中的资源。使用ARM无法做到这一点,但PowerShell + ARM可以做到这一点,您可以搜索共享资源的现有实例,如果不存在 - 使用ARM模板创建它,然后调用另一个ARM模板来部署实际服务

相关问题