使用 Azure DevOps 部署具有不同名称的 Service Fabric 服务
Posted
技术标签:
【中文标题】使用 Azure DevOps 部署具有不同名称的 Service Fabric 服务【英文标题】:Deploy Service Fabric service with different names using Azure DevOps 【发布时间】:2020-09-28 13:11:41 【问题描述】:我有一个带有一项服务 (MyService) 的 Service Fabric 应用程序。 现在,我正在使用构建管道构建应用程序,然后使用发布管道将工件部署到托管在 Azure 上的集群。
我想要的是在同一个集群上创建多个具有不同名称的服务实例(如 DEV_MyService、QA_MyService)。理想的选择是在发布管道中使用一个工件和多个阶段。
有没有办法通过 Azure DevOps 和发布管道实现这一目标?
我试图参数化服务名称,但它似乎不起作用。
【问题讨论】:
【参考方案1】:您可以通过多种方式做到这一点:
-
在现有应用程序中创建一个新的service:
sfctl application create --app-name fabric:/TestApp --app-type TestAppType --app-version 1.0
sfctl service create --app-id TestApp --name fabric:/TestApp/TestSvc1 --service-type TestServiceType --stateless --instance-count 1 --singleton-scheme
sfctl service create --app-id TestApp --name fabric:/TestApp/TestSvc2 --service-type TestServiceType --stateless --instance-count 1 --singleton-scheme
-
在多个应用程序(一种应用程序类型)中创建服务:
sfctl application create --app-name fabric:/TestApp1 --app-type TestAppType --app-version 1.0
sfctl application create --app-name fabric:/TestApp2 --app-type TestAppType --app-version 1.0
sfctl service create --app-id TestApp1 --name fabric:/TestApp/TestSvc --service-type TestServiceType --stateless --instance-count 1 --singleton-scheme
sfctl service create --app-id TestApp2 --name fabric:/TestApp/TestSvc --service-type TestServiceType --stateless --instance-count 1 --singleton-scheme
如果你想让这个参数化,你可以在文件中使用task that replaces placeholders。
脚本文件(例如 #1)如下所示:
sfctl application create --app-name fabric:/__appName__ --app-type TestAppType --app-version 1.0
sfctl service create --app-id __appName__ --name fabric:/__appName__/__serviceName__ --service-type TestServiceType --stateless --instance-count 1 --singleton-scheme
您需要指定两个 Azure DevOps 管道变量:
-
应用名称
服务名称
为每个阶段定义不同的值。
【讨论】:
以上是关于使用 Azure DevOps 部署具有不同名称的 Service Fabric 服务的主要内容,如果未能解决你的问题,请参考以下文章
YAML Azure Devops:步骤任务参考无效。任务名称不明确
如何将一个参数文件用于使用一些不同参数的模板? (在 DevOps Pipelines 中使用 Powershell 部署 Azure LogicApp)
通过Rest API或客户端DLL创建具有'Contributors'类的Azure Devops(安全)组,并具有权限