Sean Yu

IoT Specialty/Microsoft MVP/MCT

Cloud Iaas, Paas, Saas,云原生一网打尽


利用Azure functions 和Cosmos DB 自建一个短网址平台

本文介绍: 利用Azure Functions 和Cosmos DB实现一个短网址平台。 利用Functions 和Cosmos DB的免费额度,自己用可以用很久了,撸一把羊毛。   介绍的知识点有: Functions的 自定义路由; Cosmos DB 表存储的用法; Functions 绑定自定义域名及SSL;   结构如下图: 1.管理员向短网址平台注册新的短网址,例如 go.abc.com/c10001,其中c10001代表某个长网址,例如 https://www.51azure.cloud/post/2021/6/7/using-javascript-azure-functions-process-telemetry-message-from-iot-hub-and-get-device-id   2. 普通用户通过 go.abc.com/c10001访问,则实际会通过浏览器访 …

Azure Functions CosmosDB

利用 Management Group 和Policy 控制Azure 指定资源的创建

本文实现利用Azure Management Group 和Policy 控制指定的订阅的指定资源的创建。   案例背景: 某个连锁教育组织为每个分校创建了一个订阅,每个分校有若干员工; 现在要控制每个分校的员工只能创建指定类型的资源。     简单实现步骤: 在Management Groups 中为每个分校创建 一个管理组,例如命名为“上海浦东分校管理组”; 在Management Groups中为“上海浦东分校管理组”添加受控的”上海浦东分校订阅“; 在“上海浦东分校管理组”中添加Policy,使用内置的“Allowed resource types” 选择允许创建的资源;   在AAD中为每个分校创建Group:例如“上海浦东分校”; 在“上海浦东分校订阅“中,添加Access Control,将Contributor角色分配给“上海浦东分校Group”; 在AAD中为该分校创建 …

Azure Management Group Policy

Monitor Azure Functions send email when Error,监控Azure Function当出错时发送报警

本文介绍: 当Azure Functions执行失败时发送报警。   视频介绍: 图文介绍: 1.准备一个可以执行出错的Azure Functions并部署: (这部分内容讲过很多次了,可参照本博客中其他的文章,本文不再赘述)。 本例子中使用了默认的http 触发的 python Functions,修改functions中的代码,当http触发传递的参数不包含“name”时,执行1/0操作,故而报错异常。 代码如下: import logging import azure.functions as func def main(req: func.HttpRequest) -> func.HttpResponse: logging.info('Python HTTP trigger function processed a request.') name = …

Azure Monitor Azure Functions Python

Export Azure Functions Invocation Traces log,导出运行日志

本文介绍: Azure Functions 执行过程中产生的日志默认记录在了Application Insights里。这也是我们创建Functions时会自动创建一个Application Insights的原因,如下图Functions 自带一个Application Insights:   Azure Functions代码中的log相关的内容都可以在Functions 的Monitor页面查询到,注意查询结果可能出现5分钟延时。 如果我们想导出这些日志,可以点击Query in Application Insights页面,在application insights页面里导出数据:     切换到Application Insights Logs查询页面,即可导出数据:

Azure Application Insights Azure Functions Log

Azure Functions Error Value cannot be null. (Parameter 'provider')

在初次调试Azure Functions时,可能会遇到如下错误: Value cannot be null. (Parameter 'provider') 或者 connect Econnrefused 127.0.0.1:9091       此问题初步判断为网络异常导致了文件下载失败,可以开启更多调试日志查看是否为文件下载失败导致的,可以打开更多日志查看是否是文件下载故障: 步骤: 在VS Code中修改.vscode\launch.json和tasks.json文件中的启动命令 在launch.json和tasks.json中的 host start 后增加 --verbose 参数: { "version": "0.2.0", "configurations": [ { "name": "Attach to Python Functions", …

Azure Azure Functions Python

Azure Functions Blob Trigger 触发已经存在的文件的处理方式

在使用Azure Functions Blob Trigger 时,会出现container里已经存在的blob会触发functions执行,但我们想只针对新上传的文件进行触发。   原因: Azure Functions Blob trigger是通过blob 回执判断某个blob是否已经执行过触发,blob回执记录在AzureWebJobsStorage这个storage account中, 该storage account 配置在local.setting.json中:   触发后,会在云端Storage Account中的azure-webjobs-hosts中看到如下图的回执记录: 因为回执记录里不包含之前存在的文件,故而会依次触发已经存在的文件,直到全部触发一遍。   针对此问题,可以使用 事件网格触发器  代替 blob 触发器, 参考文档: https://docs. …

Azure Functions Azure Functions Python Trigger

使用MQTT 连接Azure IoT Hub

本文介绍: Azure IoT Hub 对MQTT的支持; 使用MQTT 而不用Azure IoT Hub Device SDK 连接IoT Hub并双向通讯; 使用Azure IoT Hub 的 Device SDK时,SDK封装了常见的 设备到云的消息,从云端控制设备,设备孪生属性等相关操作, 无需关注MQTT中的主题订阅。 IoT Hub必须使用TLS/SSL,因此IoT Hub不支持端口1883通讯,默认采用8883。 IoT Hub 不是完整的MQTT 服务,并没有支持MQTT 3.1.1规范中的所有行为。 IoT Hub 的设备SDK默认使用 Qos 1与IoT Hub交换消息, CleanSession标志默认为0; SDK中的默认超时时间及其是否可配置: 语言 默认的 keep-alive 时间间隔 可配置性 …

Azure IOT Video IoT Hub MQTT


Azure VM Guest host update- Azure 虚拟机安全更新

本文介绍Azure 虚拟机安全更新,同时适用于Windows 和Linux 操作系统。 本文参照:https://docs.microsoft.com/zh-cn/azure/automation/update-management/overview 视频介绍: 图文介绍: 单台虚拟机设置安全更新: 在虚拟机左侧菜单中选择 来宾和主机更新,点击转到更新管理。 按照提示选择或创建新的 log analytics 工作区和automation account即可。 多台虚拟机设置安全更新: 多台虚拟机统一管理的思路与单台一致,大体逻辑如下: 创建log analytics 工作区; 创建 automation account; 在automation account中设置 更新用的 log analytics 工作区; 在 …

Azure Video Cloud VM Security Update

Azure front door- 强制http redirect to https

本文属于Azure front door系列文章: 《Azure front door入门案例(1)-将流量路由到离用户最近(时延最低)的后端》 《Azure front door入门案例(2)-配置自定义域名》 本文介绍: Azure front door 的入门配置案例:为azure front door 强制修改http 跳转到https 上一篇中我们介绍了 为front door 配置了自定义域名 www.shawndemo.net , 配置完成后,可以使用 http://www.shawndemo.net 访问 网站,但是使用https://www.shawndemo.net 则会出现如下图不安全提示,此提示是因为 我们尚未给front door 的 自定义域名配置https。 视频演示: 图文演示: 1. 在 …

Azure Video Cloud Network Front Door