在这篇文章中,我们主要来如何将Azure DevOps中的项目作为应用发布到中国版Azure的App Service中。
什么是Azure DevOps
Azure DevOps, 原名为VSTS, 全称是Visual Studio Team System,是由微软开发的一套具有高生产力、高集成性、可扩展的生命周期开发工具,免费,无限个数的私有repo,GitHub的public repo是无限的,但是私有repo要收费
Azure App Service
- Azure App Service的优点
- 让开发人员更容易在Azure上构建可扩展的Web和移动应用程序后端
- 让开发人员更容易在Azure上组合服务
- 让开发人员更容易将Azure应用程序与记录系统整合起来
- 降低了运行应用程序后端的成本
部署步骤
- 1、在Azure DevOps中新建Repo, 本地Clone,Push代码
- 2、在Azure DevOps中并编译生成一个 .NET Core应用, 配置持续集成环境
- 3、将Azure添加到Azure DevOps的Service Endpoint(仅限中国区的Azure)
- 4、在Azure中创建App Service
- 5、配置Azure DevOps中构建的应用Release到Azure App Service
必备条件:
1、Azure订阅
2、Azure DevOps环境
3、Git
4、Visual Studio 2017 or Visual Studio Code
一、在VSTS中新建Repo, 本地Clone,Push代码
1、在VSTS中新建git代码仓库
创建完成,得到git的orgin地址
在本地新建文件夹,git获取代码路径
c:\Microsoft Teams> mkdir CITest
c:\Microsoft Teams> git clone https://qiuyuhua.visualstudio.com/CITest/_git/CITest
安装dotnet的模板
c:\Microsoft Teams> dotnet new -i MicrosoftTeams.Templates
2、根据git的项目地址,上传我们的项目文件代码
二、在Azure DevOps中并编译生成一个 .NET Core应用, 配置持续集成环境
1、在Azure DevOps中,导航到“Code”下的的 “文件” 选项卡,然后单击“设置生成”
2、选择代码源, 这里选中 VSTS Git
, 点击Continue
3、选择Build的模板, 搜索框中输入 Core
,点击选中 ASP.NET Core, 然后点击Apply
现在,可以看到所有由模板自动添加到构建管道中的任务。这些是每当我们推代码更改时自动运行的Build任务, 这里我们进行Build的相关配置
4、配置代理队列:
Azure DevOps: 设置Build的名称,选择Hosted VS2017. 这就是如何使用我们的代理池来构建应用程序所需的软件。
依次对Restore
、Build
、Test
、Publish
,进行响应的配置
5、点击Triggers Tab页在生成管道中.勾选 Enable the Continuous Integration trigger.
这将确保每次提交到存储库的更改时自动触发生成过程
6、点击 Save & queue 开始进行一个build
我们在页面上,可以看到刚刚配置的Build已经启动,并且在进行相关环境的初始化
整个Build构建完成时,我们会收到一封通知邮件
7、 Save & queue 开始进行一个build
查看Build的总体情况
生成完成,选择生成号以查看生成的简要信息
下载Artifact,查看刚刚Build完成,Publish后的文件
可以看到和我们在本地进行Publish操作,生成的文件是一样的,以上就是在Azure DevOps中构建Build的一个完整过程。
三、将Azure添加到Azure DevOps的Service Endpoint
1、把中国区的Azure添加到 Azure DevOps的 Service Endpoint
这个是使用 Azure DevOps 自动部署到中国区Azure的前置条件。Service Endpoint是以项目为单位进行配置的
点击 设置 按钮 -> 选择 Service -> 点击左侧 New service connection -> 选中点击 Azure Resource Manager -> 弹出框点击最最下方的 “use the full version of the service connection dialog”
这里关键的几个信息填写:
- Connection name (可以自由填写)
- Enviroment (选择: AzureChinaColud)
- Subscription ID (Azure的订阅ID)
- Subscription name (Azure的订阅名称)
- Service principal client ID (重点: 下文会说到)
- Service principal key (重点: 下文会说到)
- Tenant ID (Azure Active Directory -> 属性 -> 目录Id)
2、配置Service principal client ID和Service principal key
打开http://portal.azure.cn -> 选择左侧 Azure Active Directory -> 到 用户设置 -> 确保应用注册状态时可用状态
然后点击 应用注册 -> 新应用程序注册
然后打开 属性 -> 修改应用程序的ID URI 规则
接着,打开密钥 -> 添加密钥
点击左侧菜单 成本管理+计费 -> 订阅 -> 选择对应的订阅。然后点击 访问控制(标识和访问管理)添加权限,给咱们刚刚创建的应用程序添加 参与者 权限
这里回到上文中,Azure Resource Manager的配置,填写上文设置的Service principal client ID和Service principal key
配置完成后,点击 Verify connection
, 验证配置是否成功
四、在Azure中创建App Service
1、选择左侧导航栏 应用程序服务
, 点击```添加`` 新建 应用程序服务
2、选择 Web应用
, 点击 创建
3、输入应用程序名称,完成创建
4、回到应用程序列表,看到刚刚新建的App Service,已经初始化成功,并且处于Running
的状态
5、打开访问地址,出现下图,说明应用是创建成功的
五、配置Azure DevOps中构建的应用Release到Azure App Service
首先,导航到Release页面,新建一个Release Pipeline
选择Release的模板,这里选择Azure App Service deployment
, 点击Apply
添加Artifact
, 选中之前定义的Build
名称,可以进行别名命名
配置deployment trigger
, 目的是当关联的Build
生成成功后,会自动发布到我们的App Service上
配置Deploy Azure App Service
, 找到App Service Url
, 填入新建的Azure服务名称
当我们的Build
被触发时,且成功执行完成后,可以看到配置好的Release
已经启动
直到Release
完成, 此时已经将应用发布到了Azure
回到Miecrosoft Teams中,将Outgoing Webhook的地址修改为Azure App Service的地址
修改完成后,我们@机器人,看看消息的响应
参考文档
- 1、Build your ASP.NET 4 app
- 2、Deploy a web app to Azure App Services
- 3、Create an Azure service connection
- 4、Troubleshoot Azure Resource Manager service connections
- 5、中国区的Azure添加到 Azure DevOps 的 Service Endpoint