以下是我在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
之前运行?
答案 0 :(得分:1)
不,除非您在ARM模板中明确包含该内容。 DependOn只是检查资源是否存在,它不会为你神奇地创建它。
但是你可以在你的模板中包含它,如果它存在,它将不会做任何事情,除非你指定deploymentmode = complete。
因此,您可以创建3个模板,用于microservice-1,microservice-2和共享基础架构。在您的微服务模板中,您可以包括部署以创建共享基础架构,如果已经就位,它将无法执行此操作
根据评论进行编辑:
您可以在部署后链接同一订阅中的资源。使用ARM无法做到这一点,但PowerShell + ARM可以做到这一点,您可以搜索共享资源的现有实例,如果不存在 - 使用ARM模板创建它,然后调用另一个ARM模板来部署实际服务