了解 Azure 自动化

已完成

Azure 提供多种使进程自动化的方法。 Azure Functions 和逻辑应用都是启用无服务器工作负载的 Azure 服务。 两种服务都创建工作流,这些工作流是执行复杂任务的步骤集合。 例如,在 SharePoint 列表中进行输入时,可以创建逻辑应用来填充 Azure SQL 数据库中的表。 这些服务的完整解释不在本课程范围内。

为了获得更完整的自动化控制和粒度,可以通过 Azure 自动化实现流程自动化、配置管理以及与 Azure 平台选项(如基于角色的访问控制和 Microsoft Entra ID)的完全集成。Azure 自动化还可管理 Azure 和本地资源。

Azure 自动化的独特优势之一在于,它可以管理 Azure 或本地 VM 中的资源。 例如,如果为了节约成本通常将 VM 保持在关闭状态(需要使用时除外),你可以在 Azure 自动化中使用名为混合 Runbook 的功能执行启动 VM 的脚本,然后在 VM 中执行 SQL Server 备份,最后关闭 VM。

另一个常见的方案是将 Azure 自动化用于定期维护操作,例如清除过时的或旧数据,或重新编制 SQL 数据库索引。

Azure 自动化的组成部分

Azure 自动化支持自动化和配置管理活动。 我们将重点介绍自动化的组成部分,但 Azure 自动化还可用于管理服务器更新和所需的状态配置。 执行自动化任务所需的 Azure 自动化组成部分如下所示:

  • Runbook - Runbook 是 Azure 自动化中的执行单元。 Runbook 可以定义为以下三种类型之一:基于 PowerShell 的图形 Runbook、PowerShell 脚本或 Python 脚本。 PowerShell Runbook 通常用于管理 Azure SQL 资源。

  • 模块 - Azure 自动化为在 runbook 中执行的 PowerShell 或 Python 代码定义了执行上下文。 若要执行代码,你需要导入支持模块。 例如,如果要运行 Get-AzSqlDatabase PowerShell cmdlet,则需要将 Az.SQL PowerShell 模块导入自动化帐户。

  • 凭据 - 凭据存储 Runbook 或配置在运行时间使用的敏感信息。

  • 计划 - 计划链接到 Runbook 并在特定时间触发 Runbook。

Azure Policy

Windows server 管理员长期使用组策略 (GPO) 管理安全性,并在组织的 Windows Server 环境内提供一致性。 组策略的一些示例:强制执行密码复杂性、映射共享网络驱动器和配置网络打印机。

Azure Policy 包含计划定义,以帮助为自动化帐户建立不同的安全标准并保持符合这些标准。 Azure 资源管理器中也提供了类似的功能。 策略提供针对 Azure 订阅的治理级别。 策略可以对 Azure 资源强制实施规则和控制。 使用此策略的一些示例:限制部署资源的区域、强制实施命名标准或控制资源大小。 Azure 提供许多可以使用的示例策略,你也可以使用 JSON 定义自定义策略。

将策略分配到特定范围。此范围可以是管理组(一组同时管理的订阅)、订阅、资源组或单个资源。 最常见的策略将应用于订阅或资源组级别。 可以使用称为“计划”(有时也称为策略集)的结构将单个策略进行分组。 策略具有分配范围。可以在单个资源、资源组、订阅、管理组(一组同时管理的订阅)或给定租户中的所有订阅定义该分配范围。

实现 Azure Policy 的另一个示例:对资源进行标记。 如下所示的 Azure 标记以键值对的形式存储关于 Azure 资源的元数据,通常用于突出显示给定资源的环境类型(测试、QA 或生产)或成本中心。 如果策略要求所有资源的环境和成本中心都具有标记,那么该策略会导致错误并阻止部署没有所需标记的所有 Azure 资源。

Azure 订阅和标记

组织出于多种原因使用多个订阅,包括预算管理、安全性或资源隔离。 这方面的示例:组织既有内部资源也有面向客户的资源。 内部资源可存在于一个订阅中,而客户资源可存在于另一个订阅中,以便分开计费和隔离内部资源。 通过在管理组中同时管理这些订阅,管理各订阅的策略和合规性。

标记只是用于更好地描述 Azure 资源的元数据。 这些标记存储为 key:value 对,并显示在与 Azure 资源相关联的 Azure 门户中。 由于它们与资源相关联,因此使用 PowerShell 或 Azure CLI 命令时,你可以根据标记筛选命令。 这意味着你可以将其视为 SQL 查询中的 WHERE 子句。 基本示例如下所示:

$rg=(get-AzResourceGroup)

$rg=($rg|where-object {($_.tags['Use'] -ne 'Internal')}).ResourceGroupName

在此代码示例的第二行,可以看到资源组列表按照名为“Use”的标记进行筛选,并且仅返回标记没有“Internal”值的资源组。 可以在 Azure 门户中应用标记,也可以通过 PowerShell、Azure CLI 以编程方式应用标记,还可以将其作为部署过程的一部分。 标记还可应用于订阅、资源组或单个资源级别。 还可随时修改。 Azure 支持对每项 Azure 资源最多应用 15 个标记。

标记也包含在 Azure 计费信息中。通过成本中心标记便于对其进行管理,降低 Azure 费用。 标记位于每项 Azure 资源的边栏选项卡的“概述”部分。 若要使用 Azure 门户将标记添加到资源,请选择标记,然后输入标记的键和值。 将标记应用到资源后,选择“保存”。

Screenshot of how to add tags to an Azure SQL Database.

也可使用 PowerShell 或 CLI 添加标记。 PowerShell 示例如下:

$tags = @{"Dept"="Finance"; "Status"="Normal"}

$resource = Get-AzResource -Name demoStorage -ResourceGroup demoGroup

New-AzTag -ResourceId $resource.id -Tag $tags

Azure CLI 示例如下:

az resource tag --tags 'Dept=IT' 'Environment=Test' -g examplegroup -n examplevnet `

 --resource-type "Microsoft.Network/virtualNetworks"

标记使客户能够将 Azure 资源和管理层次结构组织成一个分类系统。

注意

标记以纯文本形式存储。 切勿向标记中添加敏感值。 可以通过许多方法(包括成本报告、标记分类、部署历史记录、导出的模板和监视日志)公开敏感值。