2

这是我在 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

4

1 回答 1

1

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

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

因此,您可以创建 3 个模板,分别用于 microservice-1、microservice-2 和共享基础设施。在您的微服务模板中,您可以包含部署以创建共享基础设施,如果它已经到位,它将不会这样做

根据评论编辑:

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

于 2016-11-10T11:27:42.897 回答