如何将Outgoing Webhook部署到中国版Azure

在这篇文章中,我们主要来如何将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代码仓库 vsts_create_proj

创建完成,得到git的orgin地址

created_proj

在本地新建文件夹,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的项目地址,上传我们的项目文件代码

solution

二、在Azure DevOps中并编译生成一个 .NET Core应用, 配置持续集成环境

1、在Azure DevOps中,导航到“Code”下的的 “文件” 选项卡,然后单击“设置生成”

set-up-first-build-from-code-hub

2、选择代码源, 这里选中 VSTS Git, 点击Continue

vsts_git_source

3、选择Build的模板, 搜索框中输入 Core,点击选中 ASP.NET Core, 然后点击Apply

select_build_template

现在,可以看到所有由模板自动添加到构建管道中的任务。这些是每当我们推代码更改时自动运行的Build任务, 这里我们进行Build的相关配置

build_pipeline_setting

4、配置代理队列:

Azure DevOps: 设置Build的名称,选择Hosted VS2017. 这就是如何使用我们的代理池来构建应用程序所需的软件。

build_pipeline_setting

依次对RestoreBuildTestPublish,进行响应的配置

build_pipeline_setting_restore

5、点击Triggers Tab页在生成管道中.勾选 Enable the Continuous Integration trigger. 
这将确保每次提交到存储库的更改时自动触发生成过程

solution

6、点击 Save & queue 开始进行一个build

我们在页面上,可以看到刚刚配置的Build已经启动,并且在进行相关环境的初始化

build1

build2

nuget-restore

nuget-restore

整个Build构建完成时,我们会收到一封通知邮件

build_succeeded_emaile

7、 Save & queue 开始进行一个build

查看Build的总体情况

生成完成,选择生成号以查看生成的简要信息

build_summary

下载Artifact,查看刚刚Build完成,Publish后的文件

build_artifact_download

build_artifact_publish_flies

可以看到和我们在本地进行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”

new-service-connection

add-new-azure-resource-manager-service-connection

这里关键的几个信息填写:

  • 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 -> 到 用户设置 -> 确保应用注册状态时可用状态

app-register

然后点击 应用注册 -> 新应用程序注册

new-app-register

app-sammary

然后打开 属性 -> 修改应用程序的ID URI 规则

app-attribute

接着,打开密钥 -> 添加密钥

first_principal_key

点击左侧菜单 成本管理+计费 -> 订阅 -> 选择对应的订阅。然后点击 访问控制(标识和访问管理)添加权限,给咱们刚刚创建的应用程序添加 参与者 权限

app-authority

这里回到上文中,Azure Resource Manager的配置,填写上文设置的Service principal client ID和Service principal key

配置完成后,点击 Verify connection, 验证配置是否成功

azure_resource_manager_connection

四、在Azure中创建App Service

1、选择左侧导航栏 应用程序服务, 点击```添加`` 新建 应用程序服务

create_appservice_step1

2、选择 Web应用, 点击 创建

create_appservice_step2

3、输入应用程序名称,完成创建

app_service_name

4、回到应用程序列表,看到刚刚新建的App Service,已经初始化成功,并且处于Running的状态

app_service_list

5、打开访问地址,出现下图,说明应用是创建成功的

verify_app_service

五、配置Azure DevOps中构建的应用Release到Azure App Service

首先,导航到Release页面,新建一个Release Pipeline

release_new_pipeline

选择Release的模板,这里选择Azure App Service deployment, 点击Apply

select_stage_templete

添加Artifact, 选中之前定义的Build名称,可以进行别名命名

add_an_artifact

配置deployment trigger, 目的是当关联的Build生成成功后,会自动发布到我们的App Service上

deployment_trigger

配置Deploy Azure App Service, 找到App Service Url, 填入新建的Azure服务名称

release_app_service_url

当我们的Build被触发时,且成功执行完成后,可以看到配置好的Release已经启动

release_stage_running

直到Release完成, 此时已经将应用发布到了Azure

release_stage_done

回到Miecrosoft Teams中,将Outgoing Webhook的地址修改为Azure App Service的地址

edit_outgoingwebhook_url

修改完成后,我们@机器人,看看消息的响应

testbot_message

参考文档

  • 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/278095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google SRE 读书笔记 扒一扒SRE用的那些工具

写在前面 最近花了一点时间阅读了《SRE Goolge运维解密》这本书,对于书的内容大家可以看看豆瓣上的介绍。总体而言,这本书是首次比较系统的披露Google内部SRE运作的一些指导思想、实践以及相关的问题,对于我们运维乃至开发人员都有一定的借鉴…

Microsoft Teams的Meet Now功能

今天,我们宣布完成了Skype for Business to Teams路线图中首次披露的几项关键会议功能。当个人联系,沟通和协作时,工作就自然而然的完成了,我们相信这些功能(除了我们2月的公告之外)使Microsoft Teams为所有…

Java泛型主题讨论

说明:在学习泛型这一知识点中,主要参考自《疯狂Java讲义》第7章P307-P330的泛型内容,因为是跳着阅读,所以前面的一些名词不是特别清楚,这里也做出适当备注,供自己识记与理解。 1.泛型 理解:说到…

从Microsoft Teams技术栈看前端技术发展趋势

在前不久的微软美国一年一度的Ignite大会上,微软宣布Microsoft Teams是微软历史上发展最快的应用。它将取代Skype for business,成为语音视频协作的主打产品。 我也有幸在上个月微软中国年度技术大会Tech Summit 2018上被邀请作为讲师讲解基于Teams平台…

Confluence Cloud的Teams Message Extension

Confluence Cloud的Message Extension现在正式登入Microsoft Teams。 它可用于团队频道和私人聊天,使您的对话更具描述性和信息性。 从Microsoft Teams应用商店获取Confluence Cloud应用程序并连接到Confluence Cloud实例。 连接后,您将能够搜索Conflue…

45 | 打蛇打七寸:精准测试

转载于:https://www.cnblogs.com/lmx0621/p/10614966.html

Teams App统计

周末闲来无事,统计了一下Teams的app商店里的app ( Teams App Store )。截至到现在(2018年11月)一共有145个app。要注意一点:如果app不是公开的(即单独安装到Office365租户里,并没有提交到office store&…

你必须要懂的APK瘦身知识

随着业务复杂度的逐渐增加,代码、资源也在不断的增加,此时你的APP大小也在增加。从用户层面来说,面对动辄几十兆的APP来说在非WIFI情况下还是会犹豫要不要下载,不下载你就可能因此失去了一个用户。从公司层面来讲,流量…

DHT网络

(基础技术) 现在有一种方法,可以通过磁力链接,例如magnet:?xturn:btih:0482e0811014fd4cb5d207d08a7be616a4672daa,就可以获取BT文件。 这个是通过DHT网络来实现的。 DHT网络是一个去中心化的,分布式信息存储系统。 存储的信息就…

Node文件模块

在上一篇文章中有提到,Node模块分为核心模块和文件模块,接下来就简单总结一下文件模块。 文件模块则是在运行时动态加载,需要完整的路径分析、文件定位、编译执行过程、速度相比核心模块稍微慢一些,但是用的非常多。这些模块需要我…

PHP GD库解析一张简单图片并输出

这里只演示一下2种颜色值的图片&#xff0c;简单描述下概念。 首先要安装下GD库。否则下面的代码运行不了。 $size getimagesize(2.png); // 获取图片大小 $res imagecreatefrompng(2.png); // 获取指定图片的资源对象for ($i 0; $i < $size[1]; $i) {for ($j 0; $j &…

开发Teams的messaging extension

什么是Messaging Extension Messaging Extension是微软Teams的一种十分有用的扩展方式。可以让用户发送adaptive cards。具体的说明不在这里展开了。可以阅读微软官方的详细说明&#xff1a; https://docs.microsoft.com/en-gb/microsoftteams/platform/concepts/messaging-e…

归并排序(转)

转载自&#xff1a;https://www.cnblogs.com/chengxiao/p/6194356.html 归并排序&#xff08;MERGE-SORT&#xff09;是利用归并的思想实现的排序方法&#xff0c;该算法采用经典的分治&#xff08;divide-and-conquer&#xff09;策略&#xff08;分治法将问题分(divide)成一些…

Site24x7 为Teams提供可智能 DevOps

我们生活在一个云的时代, SaaS 应用程序每天都在推动我们的生产力。作为一个消费者, 很难想象如果你最喜欢的应用无法访问&#xff0c;即使只是一秒钟无法访问。作为 SaaS业务, 更难以想象您的服务面临停机, 每一分钟停止服务都会花费大量的资金, 当然还损失客户的信任。Site24…

XUbuntu22.04之跨平台容器格式工具:MKVToolNix(二百零三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

redis集群搭建踩坑笔记

推荐参考教程&#xff1a;https://blog.csdn.net/pucao_cug/article/details/69250101 错误&#xff1a; from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require from /usr/local/redis-3.0.6/src/redis-trib.rb:25:in <main> 解决&#xff1a; g…

Docker 创建镜像

文章首发自个人网站&#xff1a;https://www.exception.site/docker/docker-create-image 本文中&#xff0c;您将学习 Docker 如何创建镜像&#xff1f;Docker 创建镜像主要有三种&#xff1a; 基于已有的镜像创建&#xff1b;基于 Dockerfile 来创建&#xff1b;基于本地模板…

使用Azure Pipelines来实现Teams App的CI

我在之前的文章里介绍了如何一步步配置CI/CD来部署Teams App( 之前的文章 )&#xff0c;随着Azure DevOps的发展&#xff0c;微软推出了Azure Pipelines。在这篇文章中&#xff0c;主要介绍什么是Azure Pipelines&#xff0c;以及如何使用Azure Pipelines来进行Teams App的构建…

004-React入门概述

一、概述 参考地址&#xff1a;https://reactjs.org/docs/try-react.html 1.1、本地快速体验 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>Hello World</title><script src"https://unpkg.com/react16/…

开发Teams Tabs应用程序

什么是Teams Tabs Tabs是微软Teams的一种十分有用的扩展方式。可以非常方便的和现有的网站或者网页应用进行整合。具体的说明不在这里展开了。可以阅读微软官方的详细说明&#xff1a; https://docs.microsoft.com/en-gb/microsoftteams/platform/concepts/tabs/tabs-overvie…