配置范围

通过手动配置成本管理导出或授予 FinOps 中心访问权限来为你管理导出,将 FinOps 中心连接到计费帐户和订阅。

FinOps 中心使用成本管理导出来导入你想要监视的计费帐户和订阅的成本数据。 可以手动配置成本管理导出,或者授予 FinOps 中心权限来为您管理导出。


先决条件

在开始之前,您需要具备以下条件:

本演练会产生以下间接成本:

  • 成本管理导出本身没有直接成本,但会将数据推送到存储中,因此会因存储的 GB 数量而产生费用。
  • 导出完成后,数据工厂管道开始处理数据,这在管道运行时会产生成本。

关于成本管理导出

成本管理提供以下 5 种类型的导出:

  • 成本和使用量详细信息 (FOCUS)
    • 使用成本和使用情况详细信息文件的 FOCUS 版本导出所有成本,如 FinOps 开放成本和使用规范 (FOCUS) 项目中定义的那样。
    • 映射到引入容器中的 Costs 文件夹。
  • 价目表
    • 导出 Azure 服务的价格。
    • 映射到引入容器中的 Prices 文件夹。
  • 预订详细信息
    • 导出 Azure 服务的预留详细信息,包括已使用和未使用的预留小时数。
    • 映射到引入容器中的 CommitmentDiscountUsage 文件夹。
  • 预订推荐
    • 导出有关节省的所有预留建议详细信息。 除了已协商的价格或折扣价(如果适用)之外,还会另外计算出节省的费用。
    • 映射到引入容器中的 Recommendations 文件夹。
  • 预留交易
    • 导出购买的 Azure 预留的预留交易。
    • 映射到引入容器中的 Transactions 文件夹。

FinOps 中心支持以下数据集类型、版本和 API 版本:

  • FocusCost:1.0r2、1.0、1.0-preview(v1)
  • PriceSheet:2023-05-01
  • ReservationDetails:2023-03-01
  • ReservationRecommendations:2023-05-01
  • ReservationTransactions:2023-05-01
  • API 版本:2023-07-01-preview

为了获得最无缝的体验,我们建议 允许 FinOps 中心为你管理导出 。 只需要付出最少的努力即可长期维护此选项。 请注意,成本管理不支持Microsoft客户协议计费帐户或计费配置文件的托管导出。


手动配置导出

如果无法授予范围的权限,可以手动创建成本管理导出,以实现相同的目标。

  1. 确定数据导出的范围。
    • 建议从 EA 计费帐户MCA 计费配置文件 范围导出,以访问其他数据集,包括价目表和预留建议。
    • 需要价目表导出才能填充缺少的价格和成本。
    • 预留建议导出在“费率优化预留建议”页上使用。
    • 建议为所选计费范围支持的每个导出类型创建每日导出:
      • 企业协议计费帐户:FocusCosts、Pricesheet、ReservationTransactions、ReservationDetails、ReservationRecommendations
      • Microsoft 客户协议计费配置文件:FocusCosts、Pricesheet、ReservationTransactions、ReservationDetails、ReservationRecommendations
      • 订阅:FocusCosts
  2. 使用以下设置创建新的 FOCUS 成本导出
    • 数据类型 = Cost and usage details (FOCUS)<
    • 数据集版本 = 1.01.0r2
    • 频率 = Daily export of month-to-date costs
    • 存储帐户 =(使用通过中心部署的订阅/资源)
    • 容器 = msexports
    • 格式 = Parquet(可用时)
    • 压缩类型 = Snappy(可用时)
    • 目录 = (为此范围指定唯一路径⁵)
      • EA 计费帐户:billingAccounts/{enrollment-number}
      • MCA 计费资料:billingProfiles/{billing-profile-id}
      • 订阅:subscriptions/{subscription-id}
      • 资源组:subscriptions/{subscription-id}/resourceGroups/{rg-name}
    • 文件分区 = 打开
    • 覆盖数据 = 关闭⁴
  3. 创建具有相同设置的另一个导出,但将频率设置为 Monthly export of last month's costs
  4. 为要包含在报告中的其他任何数据创建导出。
    • 支持的数据集和版本:
      • 价目表 2023-05-01
        • 在使用 Azure 数据资源管理器时填充缺失的价格/成本并计算节省金额所需。
      • 预留详细信息 2023-03-01
      • 预订建议 2023-05-01
        • 在费率优化报告的“预留建议”页面上,需要提供虚拟机预留建议。 如果未创建导出,页面将为空。
      • 预留交易 2023-05-01
    • 支持的格式:Parquet(首选)或 CSV
    • 支持的压缩:Snappy(首选)、GZip 或未压缩
  5. 若要初始化数据集,请运行导出。
    • 首次创建导出后,最多可能需要经过一天它才会显示。
    • 使用成本管理导出页顶部的“立即运行”命令。
    • 数据应在 15 分钟内可用,具体取决于帐户的大小。
    • 如果要回填数据,请打开导出详细信息并选择“ 导出所选日期 ”命令,一次导出一个月,或使用 Start-FinOpsCostExport PowerShell 命令 导出具有 -Backfill 参数或特定开始日期和结束日期的较大日期范围。
  6. 对要监视的每个范围重复步骤 1-4。

FinOps hubs 0.2及更高版本需要FOCUS成本数据。 截至 2024 年 7 月,导出 FOCUS 成本数据的选项只能从Azure 门户中的中心成本管理体验访问。 如果未看到此选项,请搜索或导航到 成本管理导出

FOCUS 1.0r2 和 1.0 的唯一区别是日期列中包含秒数。 如果你在其中引入了数据的系统不需要精确到秒,就无需更改现有的 1.0 导出以使用 1.0r2。

配置每日导出的过程从当前月份开始。

⁴ 虽然大多数设置是必需的,但覆写是可选的。 建议不要覆盖文件,以便可以使用数据引入报告监视引入管道。 如果你不打算使用该报告,请启用覆盖。

⁵ 导出路径可以是任何值,但在每个范围内必须是唯一的。 建议使用标识源范围的路径,例如订阅或计费帐户。 如果两个范围共享相同的路径,则可能存在引入错误。


配置托管导出

托管导出允许 FinOps 中心为你设置和维护成本管理导出。 若要启用托管导出,必须授予Azure 数据工厂访问权限才能读取要监视的每个范围中的数据。

此图显示中心的支持范围。

注意

托管导出仅在 FinOps 中心 0.4 及更高版本中可用。

托管导出使用托管标识 (MI) 来自动配置导出。 若要设置它,请使用以下步骤:

  1. 授予对Azure 数据工厂的访问权限。

  2. 添加所需的范围。

    1. 在 FinOps 中心资源组中,打开存储帐户并导航到“存储浏览器”“Blob 容器”>“配置”>
    2. 选择settings.json文件,然后选择 >”以打开该文件。
    3. 更新 scopes 属性以包含要监视的范围。 有关详细信息,请参阅 Settings.json范围示例
    4. 选择 “保存 ”命令以保存更改。 FinOps 中心应在几分钟内处理更改,数据应在 30 分钟内可用,具体取决于帐户的大小。

    重要

    不要添加重复或重叠的范围,因为这将导致数据重复。

  3. 回填历史数据。

    配置新范围后,FinOps 中心将开始监视当前和将来的成本。 若要回填历史数据,有几个选项:

    选项 1:使用config_RunBackfillJob管道

    使用 config_RunBackfillJob 管道在导出历史数据后对其进行处理。 有关运行 Azure 数据工厂管道的详细信息,请参阅 Azure 数据工厂管道

    若要从Azure 门户运行管道,请执行以下操作:

    1. 在 FinOps 中心资源组中打开数据工厂实例,选择“启动 Studio”,然后导航到“作者”>“管道”>“config_RunBackfillJob”
    2. 在命令栏中选择 “调试 ”以运行管道。 总运行时间因保持期和监视的范围数而异。

    若要从 PowerShell 运行管道,请执行以下操作:

    Get-AzDataFactoryV2 `
      -ResourceGroupName "{hub-resource-group}" `
      -ErrorAction SilentlyContinue `
    | ForEach-Object {
        Invoke-AzDataFactoryV2Pipeline `
          -ResourceGroupName $_.ResourceGroupName `
          -DataFactoryName $_.DataFactoryName `
          -PipelineName 'config_RunBackfillJob'
    }
    

    选项 2:使用成本管理导出

    可以使用成本管理 UI 直接回填多个月的数据。 在 成本管理导出文档中了解有关导出的详细信息。

    1. 打开 Azure 门户并导航到 成本管理>导出
    2. 选择由 FinOps hub 创建的受管导出。
    3. 从顶部菜单中选择“ 导出所选日期 ”。
    4. 选择要回填的日期范围(可以一次性指定多个月)。
    5. 选择 “运行” 以启动导出。

    选项 3:使用 Start-FinOpsCostExport PowerShell 命令

    回填大型日期范围的最有效的方法是使用 Start-FinOpsCostExport PowerShell 命令。 有关通过 PowerShell 使用成本管理的信息,请参阅 成本管理 cmdlet

    # Backfill the previous 12 months for a specific export
    Start-FinOpsCostExport -Name 'ftk-monthly-costdetails' `
      -Scope '/providers/Microsoft.Billing/billingAccounts/1234567/departments/56789' `
      -Backfill 12
    
    # Or specify a specific date range
    Start-FinOpsCostExport -Name 'ftk-monthly-costdetails' `
      -Scope '/providers/Microsoft.Billing/billingAccounts/1234567/departments/56789' `
      -StartDate '2023-01-01' -EndDate '2023-12-31'
    

    此命令可同时处理多个月的数据导出,并处理可能发生的任何 API 限流问题。

Settings.json范围示例

  • EA 计费帐户

    "scopes": [
      {
        "scope": "/providers/Microsoft.Billing/billingAccounts/1234567"
      }
    ]
    
  • EA 部门

    "scopes": [
      {
        "scope": "/providers/Microsoft.Billing/billingAccounts/1234567/departments/56789"
      }
    ]
    
  • 订阅

    "scopes": [
      {
        "scope": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
      }
    ]
    
  • 多个订阅

    "scopes": [
      {
        "scope": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
      },
      {
        "scope": "subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f"
      }
    ]
    
  • 资源组

    "scopes": [
      {
        "scope": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ftk-finops-hub"
      }
    ]
    

通过 PowerShell 配置导出

如果是第一次使用 FinOps 工具包 PowerShell 模块,请参阅 PowerShell 部署指南来安装该模块。

  1. 安装 FinOps 工具包 PowerShell 模块。

    Import-Module -Name FinOpsToolkit
    
  2. 创建导出并运行它,以回填最多 12 个月的数据。

    New-FinOpsCostExport -Name 'ftk-FinOpsHub-costs' `
      -Scope "{scope-id}" `
      -StorageAccountId "{storage-resource-id}" `
      -Backfill 12 `
      -Execute
    

提供反馈

请您给我们一个简短的评价,让我们知道我们做得怎么样。 我们将使用这些评审来改进和扩展 FinOps 工具和资源。

如果您在寻找特定的东西,可以为现有想法投票或者创建新想法。 与他人分享想法,以获得更多的选票。 我们专注于拥有最多选票的想法。