上次我们介绍了如何使用Azure应用服务(不用虚机不用Docker使用Azure应用服务部署ASP.NET Core程序)。我们通过Visual studio新建一个项目后手动编译发布代码。然后通过FTP上传我们的发布文件。整个过程跟我们手动发布项目到IIS上其实没啥差别。

这么操作有点繁琐,显然在这年头也有点过时了。这次我们来玩一下azure应用比较高级的持续部署。说高级其实也很简单,Azure现在跟github有比较深入的集成,只有通过鼠标点几下,立马就完成了。

话不多说,下面就演示下吧。

配置部署中心

如何新建应用服务因为前面讲过了就不在赘述了。直接从配置部署中心开始吧。



点击侧边“部署中心”,在弹出的页面上选择“Github”。

点击“继续”弹出github授权界面。



点击“Authorize AzureAppService”同意授权。



点击“下一步”配置生成提供程序,选择“Github Actions”。



点击“下一步”弹出配置界面,这个页面可以选择github上的仓库。

我随便选一个以前提交上去的RazorpageCrudDemo吧。分支选择master。运行时堆栈选择:.net core,版本 .net core 3.1 lts 。

# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions name: Build and deploy ASP.Net Core app to Azure Web App - az-app-service-01 on:
push:
branches:
- master jobs:
build-and-deploy:
runs-on: ubuntu-latest steps:
- uses: actions/checkout@master - name: Set up .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: '3.1.102' - name: Build with dotnet
run: dotnet build --configuration Release - name: dotnet publish
run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp - name: Deploy to Azure Web App
uses: azure/webapps-deploy@v2
with:
app-name: 'az-app-service-01'
slot-name: 'production'
publish-profile: ${{ secrets.AzureAppService_PublishProfile_677a6a0b22a146f8b67ab3e6372bbd60 }}
package: ${{env.DOTNET_ROOT}}/myapp

点击“完成”会自动生成一个yml文件。这个yml配置的就是github的action workflow。我们的azure应用服务跟github就是通过它串起来的。

验证部署



切换到github的actions页面。会发有一个build and deploy的job正在运行。



等待这个job运行成功后,我们就可以访问azure应用服务的url地址了。



访问一下azure应用服务对应的url,出现了asp.net core的默认页面。说明我们的部署成功了。



在访问下里面的页面,也成功渲染出来了。

持续部署(CD)

@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
} <div class="text-center">
<h1 class="display-4">Azure App deploy with Github</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>

既然是持续部署(CD),那么我们尝试下修改项目的首页,然后提交代码,看会不会自动部署代码。



提交完代码后,github的actions页面立马又出现了一个job。



等待job完成之后,再次访问azure服务应用的url,果然首页变成了我们修改的样子,说明持续部署成功了。

关注我的公众号一起玩转技术

Azure应用服务+Github实现持续部署的更多相关文章

  1. github travis-ci持续部署hexo博客

    引言 目前我的博客源码是在coding上的,因为有很方便的持续部署,但是coding目前还不提供push文件的开放API. 因为最近做了一个一键分发平台,将博客分发到简书.CSDN等等的平台,但是我的 ...

  2. 【Azure 应用服务】PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法

    问题描述 在PHP项目部署在App Service后,上传文件如果大于1MB就会遇见 413 Request Entity Too Large 的问题. 问题解决 目前这个问题,首先需要分析应用所在的 ...

  3. 怎样在 Azure 应用服务中生成和部署 Java API 应用

    先决条件 Java 开发人员工具包 8(或更高版本) 已在开发计算机上安装 Maven 已在开发计算机上安装 Git Azure 订阅付费版或试用版 HTTP 测试应用程序,如 Postman 使用 ...

  4. 为 Azure 应用服务配置连续部署工作流

    本快速入门介绍了如何将应用服务 GitHub 集成以实现连续部署工作流.在本教程中完成的所有操作均符合1元试用条件. 本快速入门介绍了如何将应用服务 GitHub 集成以实现连续部署工作流.在本教程中 ...

  5. Azure 应用服务中的 API 应用、ASP.NET 和 Swagger 入门

    学习内容: 如何通过 Visual Studio 2015 中的内置工具在 Azure 应用服务中创建和部署 API 应用. 如何使用 Swashbuckle NuGet 包动态生成 Swagger ...

  6. 【Azure 应用服务】App Service中,为Java应用配置自定义错误页面,禁用DELETE, PUT方法

    问题定义 使用Azure应用服务(App Service),部署Java应用,使用Tomcat容器,如何自定义错误页面呢?同时禁用DELETE, PUT方法 解决办法 如何自定义错误页面呢?需要在 J ...

  7. Azure Terraform(八)利用Azure DevOps 实现Infra资源和.NET CORE Web 应用程序的持续集成、持续部署

    一,引言 上一篇讲解到利用 Azure DevOps 将整个 Azure Web App,Azure Traffic Manager profile,Azure Storage Account,Azu ...

  8. 【Azure 应用服务】App Service 在使用GIt本地部署,上传代码的路径为/home/site/repository,而不是站点的根目录/home/site/wwwroot。 这个是因为什么?

    问题描述 App Service 在使用GIt本地部署,上传代码的路径为/home/site/repository,而不是站点的根目录/home/site/wwwroot. 这个是因为什么? 并且通过 ...

  9. 【Azure 应用服务】App Service For Windows 环境中部署Python站点后,如何继续访问静态资源文件呢(Serving Static Files)?

    问题描述 当创建一个App Service 后,运行时环境和版本选择Windows 和 Python 3.6. 登录Kudu 站点查看,默认的文件有 web.config, hostingstart- ...

随机推荐

  1. 源码分析:CountDownLatch 之倒计时门栓

    简介 CountDownLatch 是JDK1.5 开始提供的一种同步辅助工具,它允许一个或多个线程一直等待,直到其他线程执行的操作完成为止.在初始化的时候给定 CountDownLatch 一个计数 ...

  2. 怎么在Word上编辑数学公式?教你一招

    在日常工作中我们常常会用到word来编辑文字.但是有时候也免不了要输入一些公式,尤其是数学.物理还有化学方面等较复杂的公式.这时候用word来编辑的话会很麻烦,很难编辑出来,那该怎么办呢? 我们都知道 ...

  3. css3系列之详解border-image

     border-image border-image呢,是给 边框加上背景图片的.没错,就是平常那一小小条的边框,也能加图片. 参数: border-image-source border-image ...

  4. js 时间日期与时间戳之间转换

    1 1.将时间(2017-08-10)转换时间戳 2 var startTime = '2017-08-10'; 3 var startdate = new Date(Date.parse(start ...

  5. Java基础教程——异常处理详解

    异常处理 好程序的特性 可重用性 可维护性 可扩展性 鲁棒性 |--|--Robust的音译 |--|--健壮.强壮之意 |--|--指在异常和危险情况下系统依然能运行,不崩溃 Java中,写下如下代 ...

  6. 企业安全05-Fastjson <=1.2.47反序列化RCE漏洞(CNVD-2019-22238)

    Fastjson <=1.2.47反序列化RCE漏洞(CNVD-2019-22238) 一.漏洞描述 Fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 ...

  7. C#(三)基础篇—方法,递归,条件分支,循环,三元操作符

    C# 本随笔为个人复习巩固知识用,多从书上总结与理解得来,如有错误麻烦指正 2020-12-03 1.方法 static void Main(string[] args) { float Sum(fl ...

  8. 软件工程与UML 第一次个人作业

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1/ 这个作业要求在哪里 https://edu.cnblogs.com/campus/f ...

  9. Redis分布式锁—Redisson+RLock可重入锁实现篇

    前言 平时的工作中,由于生产环境中的项目是需要部署在多台服务器中的,所以经常会面临解决分布式场景下数据一致性的问题,那么就需要引入分布式锁来解决这一问题. 针对分布式锁的实现,目前比较常用的就如下几种 ...

  10. Redis分布式锁—SETNX+Lua脚本实现篇

    前言 平时的工作中,由于生产环境中的项目是需要部署在多台服务器中的,所以经常会面临解决分布式场景下数据一致性的问题,那么就需要引入分布式锁来解决这一问题. 针对分布式锁的实现,目前比较常用的就如下几种 ...