问题描述 在Azure Function Portal上显示: Azure Functions runtime is unreachable,引起的结果是Function App目前不工作,但是此前一直都是正常工作的,且没有对Azure Function做过任何的改动,那它是为什么出现这样的问题呢? 问题分析 Azure Functions runtime is unreachable 的错误是 "Azure Functions 运行时不可访问",此问题的最常见原因是函数应用失去了对其…
一切为了安全,所有的云上资源如支持内网资源访问,则都可以加入虚拟网络 问题描述 使用Azure Function处理Storage Account中Blob 新增,更新,删除等情况.Storage Account启用虚拟网络中的服务终结点(Service Endpoint)后,可以实现只能从内网访问.同时,Azure Function也支持集成内网.并且可支持在虚拟网络中被Storage Account所触发.所以根据门户中一步一步的操作,配置完Azure Function和Storage Ac…
问题描述 在使用Azure Function App的SendGrid Binging功能,调用SendGrid服务器发送邮件功能时,有时候遇见间歇性,偶发性异常.在重新触发SendGrid部分的Function,又能正常运行.所以本文基于Azure Function使用SendGrid的异常错误消息日志,一步一步,分析源码中的调用.然后调查为什么Azure Function没有自动Retry呢? (如需要参考如何使用Azure Function SendGrid,参考:Azure Functi…
问题描述 编写Powershell Function,登录到China Azure并获取Azure AD User信息,但是发现遇见了 [Error] ERROR: ManagedIdentityCredential authentication failed: An unexpected error occured while fetching the AAD Token. Please contact support with this provided Correlation IdStat…
问题描述 Azure PaaS服务是否有FTP/S服务呢? 回答问题 应用服务(Web App/App Service)在创建时候,默认创建了FTP服务并自动开启,用于应用部署.但它不是适合作为FTP文件服务器,如果需要存储文件,可以使用Azure 存储服务(Stroage Account). 如何登录到App Service的FTP呢? 方式一:在App Service的Overview页面,可以查看到FTP的主机名,而连接的Username以及Password 可以在Get publish…
问题描述 在上篇博文"[Azure 应用服务]App Service for Linux 中实现 WebSocket 功能 (Python SocketIO)"中,实现了通过 HTTP 方式访问部署在Azure App Service For Linux上的Python Flask Web Socket项目, 但是当使用HTTPS访问时候,socket.io所发送的GET请求都能正常. HTTP 成功 HTTPS 失败 但是POST请求全部返回400 Bad Request 那么,如何…
问题背景 什么是TCP timestamps(TCP 时间戳)? The remote host implements TCP Timestamps, as defined by RFC1323 (https://www.ietf.org/rfc/rfc1323.txt). A side effect of this feature is that the uptime of the remote host can be sometimes be computed. 以前,TCP/IP 堆栈使用…
问题描述 使用PowerShell脚本执行获取Azure订阅列表的指令(Get-Azsubscription -TenantId $tenantID -DefaultProfile $cxt).在本地调试后,指令成功运行. 但是当指令并运行在Azure Function时,则出现了异常: 详细的异常信息为 完成的错误信息为: "Error getting value from 'Tags' on 'Microsoft.Azure.Commands.Profile.Models.PSAzureSu…
问题描述 Azure Function HTTP 触发后, 230秒就超时,而其他方式触发的Function, 执行5分钟后也超时,如何调整超时时间? 问题分析 查阅官方文档,对函数应用超时持续时间有详细介绍:最新的3.X版本的默认值根据Function计划的类型不同而不同,默认的最少为5分钟,最大30分钟.消耗计划的Function最大可调整为10分钟,而其他两种无限制. 但是,非常非常重要的一点是:如果Function是HTTP触发类型.它的响应时间最大最大就是230秒. 这是因为 Azur…
问题描述 使用NodeJS的后端应用,开发一个Mobile App的服务端,手机端通过REST API来访问获取后端数据.在本地编译好后,通过npm start启动项目,访问效果如下: 但是,当把项目文件通过FTP,或者直接VS Code 部署到App Service for windows后,访问首页并不是mobile app的页面,而是默认的App Service页面,访问项目里面的API也是404错误? 问题解决 从访问默认URL和测试API为404的效果来看,这是NodeJS项目并没有启…
问题描述 在前两篇博文中,对NodeJS Express应用 使用MSAL + AAD实现用户登录并获取用户信息,获取Authorization信息 ( ID Token, Access Token). [Azure 应用服务]NodeJS Express + MSAL 应用实现AAD集成登录并部署在App Service Linux环境中的实现步骤 [Azure 应用服务]NodeJS Express + MSAL 应用实现AAD登录并获取AccessToken -- cca.acquireT…
学习内容: 如何通过 Visual Studio 2015 中的内置工具在 Azure 应用服务中创建和部署 API 应用. 如何使用 Swashbuckle NuGet 包动态生成 Swagger API 元数据,以便自动进行 API 发现. 如何使用 Swagger API 元数据自动生成 API 应用的客户端代码. Note 若要将 Visual Studio 连接到 Azure 中国区,可按使用 Visual Studio 2015 连接中国区 Azure中的说明操作. 如果使用的是 V…
本快速入门介绍了如何将应用服务 GitHub 集成以实现连续部署工作流.在本教程中完成的所有操作均符合1元试用条件. 本快速入门介绍了如何将应用服务 GitHub 集成以实现连续部署工作流.在本教程中完成的所有操作均符合1元试用条件. 开始之前 如果您还没有 Azure 账户,可以申请1元试用账户. 步骤 1:创建 Web 应用 1. 登录到 Azure 门户,点击“+新建”->“Web + Mobile”->“Web 应用”. 2. 输入必要的参数,点击“应用服务计划/位置”->“新建…
一般我们写好了应用程序想要部署发布它,要么发布到物理机,要么发布到虚拟机,要么发布到容器来运行它.现在有了Azure应用服务,我们可以完全不用管这些东西,只管写好自己的代码,然后使用VisualStudio的发布功能就可以一键部署了.如果你觉得性能不够用了还可以自动扩容,弹性伸缩. 应用服务概述 Azure 应用服务是一项基于 HTTP 的服务,用于托管 Web 应用程序.REST API 和移动后端 . 可以使用 .NET.NET Core.Java.Ruby.Node.js.PHP 或 Py…
测试App Service是否可以访问其他DNS 当应用服务(Azure App Service)创建完成后,想通过ping命令来查看是否可以访问其他站点或解析DNS,但是发现ping命令无法使用.这是因为App Service存在安全约束,因此无法通过控制台运行 ping.nslookup 和 tracert 工具 .为了测试DNS功能和测试主机TCP的连接问题,App Service 提供了两个命令 nameresolver.exe 用于测试 DNS 功能,命令格式为:nameresolve…
上次我们介绍了如何使用Azure应用服务(不用虚机不用Docker使用Azure应用服务部署ASP.NET Core程序).我们通过Visual studio新建一个项目后手动编译发布代码.然后通过FTP上传我们的发布文件.整个过程跟我们手动发布项目到IIS上其实没啥差别. 这么操作有点繁琐,显然在这年头也有点过时了.这次我们来玩一下azure应用比较高级的持续部署.说高级其实也很简单,Azure现在跟github有比较深入的集成,只有通过鼠标点几下,立马就完成了. 话不多说,下面就演示下吧.…
问题描述 C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Application 调查方式 面对C#的黄页错误,最好的做法就是根据提示,关闭C#的自定义错误页面,显示出真正的错误消息.根据提示,在Web.config文件中的system.web节点中添加设置 <customErrors mode="Off"/> 方式有二: 一:进入kud…
欢迎使用 Blazor!Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建信息丰富的交互式 UI. 共享使用 .NET 编写的服务器端和客户端应用逻辑. 将 UI 呈现为 HTML 和 CSS,以支持众多浏览器,其中包括移动浏览器. 与新式托管平台(如 Docker)集成. 任务描述 使用VS2019模板创建Blazor项目,添加Dockerfile打包为Linux镜像,最后发布到Azure应用服务, 并查看镜像的发布日志…
问题定义 使用Azure应用服务(App Service),部署Java应用,使用Tomcat容器,如何自定义错误页面呢?同时禁用DELETE, PUT方法 解决办法 如何自定义错误页面呢?需要在 Java 的 web.xml 进行配置 error-page,具体内容如下: <?xml version="1.0" encoding="utf-8" ?> <web-app xmlns="http://xmlns.jcp.org/xml/ns…
问题描述 App Service 在使用GIt本地部署,上传代码的路径为/home/site/repository,而不是站点的根目录/home/site/wwwroot. 这个是因为什么? 并且通过Git发布静态文件的时候不成功.出现"Could not detect any platform in the source directory." 和 "Error: Couldn't detect a version for the platform 'php' in the…
ASP.NET OpenAPI 可以非常方便的将我们的Web API项目自动文档化,除了自动文档化以外,我们还可以利用Azure API Management将Open API自动文档化了的Web API整合到当下最火的低代码应用当中,在这篇文章中,我将向您展示如何使用Azure API Management将Azure Functions,Power Apps和Logic Apps等等Azure Service 串联在一起.Azure API Management能够利用已文档化的API定义来…
问题描述 当需要在应用中有大量的出站连接时候,就会涉及到SNAT(源地址网络转换)耗尽的问题.而通过Azure App Service/Function的默认监控指标图表中,却没有可以直接查看到SNAT是否耗尽的问题(可以间接参考App Service Plan级中Metrics的 Socket Outbound All指标,但是由于它是整个Plan下所有App Service的汇总数据,不能直接表明SNAT是否超过128的限制). 这里所说的出站连接如:SQL数据库, Redis缓存以及其他的…
问题描述 备份网站时由于文件太大了,导致应用服务备份失败.如何解决呢? 问题分析 App Service (应用服务)的备份功能有10GB大小的限制,超过了是无法备份成功的并且该限制是无法扩大的.查看微软云的官方网站,备份功能还有以下限制和要求: 备份和还原功能要求应用服务计划处于标准层.高级层或隔离层 . 在与要备份的应用相同的订阅中,需要有一个 Azure 存储帐户和容器. 最多可备份 10 GB 的应用和数据库内容. 如果备份大小超过此限制,会出错. 不支持备份启用了 TLS 的 Azur…
问题描述 App Service 服务URL无法访问,进入门户中的Advanced Tools(Kudu).App Service Editor (Preview)等页面无法打开, 打开就出现 The service is unavailable 错误. 问题排查和解决 由于无法打开高级工具(Kudu)并收集当前应用的日志,而根据错误消息"The service is unavailable"表明后端Host当前App Service的虚拟机实例出现了问题,那么可以通过人为的操作来改变…
问题描述 在.Net Core 5.0 项目中,添加 Microsoft.Extensions.Logging.AzureAppServices 和 Microsoft.Extensions.Logging.Abstractions插件,并且在项目中添加  logging.AddAzureWebAppDiagnostics() return Host.CreateDefaultBuilder(args) .ConfigureLogging(logging => { //logging.AddCo…
问题描述 通过Docker Desktop for Linux,配置Nginx镜像后,自定义nginx.conf文件,修改启动目录和对 /out 路径的反向代理到博客园的博文地址 (https://www.cnblogs.com/lulight/p/15180884.html), 然后部署到Azure App Service中的整体实现方案. 操作步骤(共5步) 第 0 步:启动本地 Docker Desktop,并拉取Nginx 镜像 # 1. pull nginx image ... nee…
问题描述 当创建一个App Service 后,运行时环境和版本选择Windows 和 Python 3.6. 登录Kudu 站点查看,默认的文件有 web.config, hostingstart-python.py, hostingstart-python.html,  在配置文件中,通过pythonpath来指定启动目录,而 WSGI_HANDLER 则指定启动的py文件为 hostingstart-python.py. web.config <configuration> <ap…
问题描述 参考官方文档部署 PHP Laravel 项目到App Service for Linux环境中,但是访问应用时候遇见了500 Server Error 错误. 从部署的日志中,可以明确看出部署是成功的,那么为什么启动页面不成功呢? 问题分析 Laravel 应用程序生命周期在 public 目录中开始,而不是在应用程序的根目录(wwwroot)中开始.在Azure App Service中,所有项目的默认根目录都是wwwroot. 但是可以使用 .htaccess 来重写所有请求,使…
问题描述 在App Service For Windows的环境中,我们可以通过ArmClient 工具发送POST请求在Web应用的实例中抓取网络日志,但是在App Service For Linux的环境中如何抓取网络包呢? 抓取Windows的网络包可参考博文:[应用服务 App Service]App Service中抓取网络日志 问题解决 通过SSH方式登录到Linux实例,使用tcpdump的工具抓取网络包, 通过IP地址和端口443来进行过滤,生成的网络包写入到tmp目录下的 ap…
编写Java Spring Boot应用,通过配置logging.path路径把日志输出在指定的文件夹中. 第一步:通过VS Code创建一个空的Spring Boot项目 第二步:在application.properties中添加输入日志的级别和指定路径 logging.path=mylogs logging.level.root= INFO logging.level.org.springframework.web= INFO logging.level.org.springframewo…