Sean Yu

IoT Specialty/Microsoft MVP/MCT

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


Azure IoT Edge 1.2 及Azure IoT Edge for Linux on Windows

Azure IoT Edge 版本 1.2 仅支持Linux 容器。 IoT Edge 1.1 LTS 是最后一个支持 Windows 容器Edge版本。 IoT Edge 1.1 LTS 使用 .NET Core 3.1,且有效支持期至 2022 年 12 月 3 日。   Linux 容器可以部署到 Linux 或 Windows 操作系统上: 对于 Linux 设备,IoT Edge 运行时会直接安装在主机设备上。 对于 Windows 设备,使用 IoT Edge 运行时预生成的 Linux 虚拟机会在主机设备上运行。 对于Windows 设备运行IoT Edge的推荐方式为:Azure IoT Edge for Linux on Windows(预览版),可参阅:https://docs.microsoft.com/zh-cn/azure/iot-edge/iot-edge- …

Azure IOT IoT Hub IoT Edge

数据库迁移上云-使用Data Tier Application (.bacpac)脱机迁移SQL Server 到Azure SQL DB

本文介绍: 使用 Data Tier Application 导入导出功能在 Azure SQL DB 和本地SQL Server之间同步数据库。   视频介绍:     将本地数据库导出data-tier application   选择一个目录并设定倒出文件的名称,扩展名为 .bacpac     执行导出步骤,将先倒出schema,后导出数据。     将导出的文件 上传到 blob中: 在Azure SQL DB中,选择导入数据库:       选中上传到blob中的 bacpac文件   导入成功即可看到数据库:     方法二,通过ssms工具导入: 设定目标数据库大小:   执行导入步骤:

Azure Video Azure SQL DMS Migration

数据库迁移上云-使用Data Migration Assistant 脱机迁移SQL Server 到Azure SQL DB

本文介绍: 使用Data Migration Assistant 脱机迁移本地SQL Server 到Azure SQL DB   重点步骤: 1.创建Azure SQL DB 作为目标数据库 2.下载安装 data migration assistant工具 3.迁移Schema 和 Data   视频演示:   创建Azure SQL DB: 新建逻辑服务器并设置账号密码及区域:     本案例中,计算+存储可以选择标准层以节约成本:     下载并安装DMA 工具: 下载地址:Download Microsoft® Data Migration Assistant v5.4 from Official Microsoft Download Center       创建 迁移项目:   配置数据源:   配置 目标:   选择要同步的表:     生成建表脚本 并 部 …

Azure Video DMS SQL Migration DMA

数据库迁移上云-使用Data Migration Service 脱机迁移SQL Server 到Azure SQL DB

本文介绍: 使用Data Migration Service 脱机迁移本地SQL Server 到Azure SQL DB   重点步骤: 1.创建Azure SQL DB 作为目标数据库 2.创建DMS 服务 3.迁移Schema  4.迁移Data     视频演示:   创建Azure SQL DB: 新建逻辑服务器并设置账号密码及区域:     本案例中,计算+存储可以选择标准层以节约成本:       创建Azure Database Migration Service   输入名称,选择区域,设置层级,本例子中选择 standard 1 vcore即可:     在网络中选择一个 已经存在的虚拟网络,或者在下方新建一个新的虚拟网络   创建完成转到资源     创建Schema Only Migration Project 设置数据源:本地的sql …

Azure Video DMS SQL Migration

利用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