配置范围

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

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

重要

Microsoft成本管理不支持Microsoft 客户协议计费帐户的托管导出。 有关详细信息,请参阅 手动配置成本管理导出。

为了获得最无缝的体验,我们建议尽可能允许 FinOps 中心管理导出。 此选项需要尽量少地维护一段时间。


手动配置导出

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

  1. 使用以下设置创建新的 FOCUS 成本导出

    • 数据类型 = Cost and usage details (FOCUS)<
    • 数据集版本 = 1.0a0>
    • FrequencyIcp = Daily export of month-to-date costs
    • 存储帐户 = (使用与中心一起部署的订阅/资源)
    • 容器 = msexports
    • Format = CSV
    • “压缩类型” = none
    • 目录 = (为此范围指定唯一路径⁵)
      • EA 计费帐户:billingAccounts/{enrollment-number}
      • MCA 计费配置文件:billingProfiles/{billing-profile-id}
      • 订阅:subscriptions/{subscription-id}
      • 资源组:
    • 格式 = Parquet
    • 压缩 = Snappy
    • 文件分区 = 打开
    • 覆盖数据 = Off⁴
  2. 创建具有相同设置的另一个导出,但将频率设置为 Monthly export of last month's costs

  3. 为要包含在报表中的其他任何数据创建导出。

    • 支持的数据集和版本:
      • 价目表 2023-05-01
      • 预留详细信息 2023-03-01
      • 预留建议 2023-05-01

        注意

        在费率优化报告的“预留建议”页上,需要虚拟机预留建议导出。 如果未创建导出,页面将为空。

      • 预留交易 2023-05-01
    • 支持的格式:Parquet(首选)或 CSV
    • 支持的压缩:Snappy(首选)、GZip 或未压缩
  4. 若要初始化数据集,请运行导出。

    • 导出最多可能需要一天才能在首次创建后显示。
    • 使用成本管理导出页顶部的“立即运行”命令。
    • 数据应在 15 分钟内可用,具体取决于帐户的大小。
    • 如果要回填数据,请打开导出详细信息,然后选择“导出所选日期命令一次导出一个月,或使用 Start-FinOpsCostExport PowerShell 命令导出更大的日期范围。
  5. 对要监视的每个范围重复步骤 1-4。

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

Iops FinOps hubs 0.4 支持 FOCUS 1.0 和 FOCUS 1.0 预览版。 0.4 版中的 Power BI 报表与 FOCUS 1.0 保持一致,无论数据是否引入为 FOCUS 1.0 预览版。 如果需要 1.0 预览数据和报表,请使用 FinOps hubs 0.3。

配置每日导出从当前月份开始。 如果要回填历史数据,请创建一次性导出并将开始日期/结束日期设置为所需的日期范围。

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

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


配置托管导出

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

显示中心支持的作用域的关系图。

注意

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

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

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

  2. 添加所需的范围。

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

    重要

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

  3. 回填历史数据。

    配置新范围后,FinOps 中心将开始监视当前和将来的成本。 若要回填历史数据,必须为每个月运行 config_RunBackfillJob 管道。

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

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

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

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

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