FinOps 中心模板

幕后查看构成 FinOps 中心模板的内容,包括输入和输出。

此模板创建新的 FinOps 中心 实例。

FinOps 中心包括:

  • 用于托管成本数据的 Data Lake 存储。
  • 用于数据处理和业务流程的数据工厂。
  • 用于存储机密的密钥库。

重要

若要使用模板,需要创建一个成本管理导出,用于将成本数据发布到 msexports 包含的存储帐户中的容器。 有关详细信息,请参阅 “创建新中心”。


先决条件

在部署模板之前,请确保满足以下先决条件:


参数

下面是可用于自定义部署的参数:

参数 类型 说明 默认值
hubName string 可选。 中心的名称。 用于确保唯一的资源名称。 “finops-hub”
location string 可选。 应在其中创建所有资源的 Azure 位置。 请参阅 https://aka.ms/azureregions 与部署相同
skipEventGridRegistration 布尔 指示事件网格资源提供程序是否已注册(例如,在以前的中心部署中)。 需要事件网格 RP 注册。 如果未设置,则会创建临时事件网格命名空间以自动注册资源提供程序。 false (注册 RP)
EventGridLocation string 可选。 用于临时事件网格命名空间的 Azure 位置,以便在主位置不受支持的情况下注册 Microsoft.EventGrid 资源提供程序。 命名空间被删除,不用于中心操作。 location 相同
storageSku 字符串 可选。 要使用的存储 SKU。 LRS = 成本最低,ZRS = 高可用性。 标准 SKU 不适用于 Data Lake gen2 存储。 允许:Premium_LRSPremium_ZRS “Premium_LRS”
标记 object 可选。 要应用于所有资源的标记。 cm-resource-parent此外,还添加了标记,用于改进成本管理中的成本汇总。
tagsByResource object 可选。 要根据其资源类型应用于资源的标记。 资源类型特定的标记与所有资源的标记合并。
scopesToMonitor array 可选。 要监视和引入成本的范围 ID 列表。
exportRetentionInDays int 可选。 在 ms-cm-exports 容器中保留的成本数据天数。 0
ingestionRetentionInMonths int 可选。 要保留在引入容器中的成本数据月数。 13
remoteHubStorageUri string 可选。 要将数据推送到远程中心的存储帐户,以便将数据引入远程中心。
remoteHubStorageKey string 可选。 将数据推送到远程中心的存储帐户密钥。

资源

在部署期间,以下资源在目标资源组中创建。

资源使用以下命名约定: <hubName>-<purpose>-<unique-suffix> 名称调整为考虑长度和字符限制。 用于 <unique-suffix> 确保资源名称在需要的情况下全局唯一。

  • <hubName>store<unique-suffix> 存储帐户 (Data Lake Storage Gen2)
    • Blob 容器:
      • msexports – 暂时存储成本管理导出。
      • ingestion – 存储引入的数据。

        注意

        将来,我们将使用此容器在成本管理之外暂存外部数据。 - config – 存储中心元数据和配置设置。 文件:

        • settings.json – 中心设置。
        • schemas/focuscost_1.0.json – PARQUET 转换的 FOCUS 1.0 架构定义。
        • schemas/focuscost_1.0-preview(v1).json – PARQUET 转换的 FOCUS 1.0-preview 架构定义。
  • <hubName>-engine-<unique-suffix> 数据工厂实例
    • 管道:
      • msexports_ExecuteETL – 将 msexports_ETL_ingestion 管道排队以考虑数据工厂管道触发器限制。
      • msexports_ETL_transform – 将成本管理导出转换为 parquet,并删除每天导出中重复的历史数据。
      • config_ConfigureExports – 为所有范围创建成本管理导出。
      • config_StartBackfillProcess – 根据保留设置运行每个月的回填作业。
      • config_RunBackfillJob – 为指定日期范围的所有已定义范围创建和触发器导出。
      • config_StartExportProcess – 获取根据settings.json中定义的范围配置的所有成本管理导出的列表,然后使用config_RunExportJobs管道运行每个导出。
      • config_RunExportJobs – 运行指定的成本管理导出。
      • msexports_ExecuteETL – 触发成本管理导出的引入过程,以考虑数据工厂管道触发器限制。
      • msexports_ETL_transform – 将成本管理导出转换为 parquet,并删除每天导出中重复的历史数据。
    • 触发器:
      • config_SettingsUpdated – 更新settings.json时触发 config_ConfigureExports 管道。
      • config_DailySchedule – 为当前月份的成本数据每天触发 config_RunExportJobs 管道。
      • config_MonthlySchedule – 针对上一个月的成本数据每月触发 config_RunExportJobs 管道。
      • msexports_FileAdded – 在成本管理导出完成时触发 msexports_ExecuteETL 管道。
  • <hubName>-vault-<unique-suffix>密钥库实例
    • 机密:
      • 数据工厂系统托管标识

除了上述信息之外,还创建了以下资源来自动执行部署过程。 应自动删除部署脚本。 但是,不要删除托管标识,因为它可能会在升级到下一个版本时导致错误。

  • 托管标识:
  • 部署脚本(成功部署后自动删除):
    • <datafactory>_deleteOldResources – 从以前的 FinOps 中心部署中删除未使用的资源。
    • <datafactory>_stopTriggers – 使用 triggerManager 标识停止中心中的所有触发器。
    • <datafactory>_startTriggers – 使用 triggerManager 标识启动中心中的所有触发器。
    • <storage>_uploadSettings – 使用 blobManager 标识上传settings.json文件。

Outputs

下面是部署生成的输出:

输出 类型 说明
name 字符串 已部署的中心实例的名称。
location 字符串 已部署到 Azure 资源位置资源。 location
dataFactorytName 字符串 数据工厂的名称。 dataFactory.name
storageAccountId 字符串 为中心实例创建的存储帐户的资源 ID。 创建成本管理导出时必须使用它。 storage.outputs.resourceId
storageAccountName 字符串 为中心实例创建的存储帐户的名称。 将 FinOps 工具包 Power BI 报表连接到数据时必须使用它。 storage.outputs.name
storageUrlForPowerBI 字符串 将自定义 Power BI 报表连接到数据时要使用的 URL。 'https://${storage.outputs.name}.dfs.${environment().suffixes.storage}/${storage.outputs.ingestionContainer}'
managedIdentityId 字符串 数据工厂托管标识的对象 ID。 配置托管导出时需要此输出。 dataFactory.identity.principalId
managedIdentityTenantId 字符串 Microsoft Entra 租户 ID。 配置托管导出时需要此输出。 tenant().tenantId