搜索

2.6. 在 Microsoft Azure 中创建功能

download PDF

在 Azure 中创建功能会过滤您的数据,并将其添加到您创建的存储帐户中,以便与红帽共享。您可以使用本节中的示例 Python 脚本从您的导出中收集和共享过滤的成本数据。

先决条件

Microsoft Azure 帐户中

  1. 在搜索栏中输入 功能,然后选择 Function App
  2. Create
  3. 为您的功能选择一个托管选项,然后单击 选择
  4. Create Function App 页面中,添加您的资源组。

    1. Instance Details 部分中,将功能命名为 app。
    2. Runtime stack 中,选择 Python
    3. Version 中,选择 latest。
  5. Review + create:

    1. Create
    2. 等待资源创建,然后单击 Go to resource 以查看。

在 Visual Studio Code 中:

  1. Microsoft Azure 选项卡并登录到 Azure。

    1. Workspaces 下拉菜单中,点显示为带有 orange lightning bolt 的图标的 Azure Functions
    2. 单击 Create Function
  2. 按照提示设置本地位置,并为功能选择语言和版本。在这个示例中,选择 Python,Model 2 和最新版本。
  3. Select a template for your function 对话框中,选择 Timer trigger,命名函数,然后按 enter 键。
  4. 设置 cron 表达式,以控制函数运行的时间。在本例中,使用 0 9 * * 代表 每天在 9 AM 运行该功能:

    1. Create
    2. 在当前窗口中单击 Open

在 requirements.txt 文件中:

  1. 在开发环境中创建功能后,打开 requirements.txt 文件,添加以下要求并保存文件:
azure-functions
pandas
requests
azure-identity
azure-storage-blob

init.py 中:

  1. 复制 Python 脚本 并将其粘贴到init.py' 中。
  2. 更改标记为 # Required vars 的部分中的值,以更新到与您的环境对应的值。

    • 示例脚本使用 Azure Key Vault 中的 secret 将服务帐户 client_idclient_secret 配置为环境变量。您也可以直接在脚本中输入凭证,但这不是最佳实践。
    • 默认脚本有用于过滤数据或 RHEL 订阅过滤的内置选项。您必须取消注释要使用的过滤类型,或者编写您自己的自定义过滤。从以下之一中删除注释:

      • filtered_data = hcs_filtering(df)
      • filtered_data = rhel_filtering(df)
    • 如果要编写自定义过滤,您必须包含以下所需的列:

      'additionalinfo', 'billingaccountid', 'billingaccountname', 'billingcurrencycode', 'billingperiodenddate', 'billingperiodstartdate', 'chargetype', 'consumedservice', 'costinbillingcurrency', 'date', 'effectiveprice', 'metercategory', 'meterid', 'metername', 'meterregion', 'metersubcategory', 'offerid', 'productname', 'publishername', 'publishertype', 'quantity', 'reservationid', 'reservationname', 'resourcegroup', 'resourceid', 'resourcelocation', 'resourcename', 'servicefamily', 'serviceinfo1', 'serviceinfo2', 'subscriptionid', 'tags', 'unitofmeasure', 'unitprice'
    • 其中一些列因报告类型而异。示例脚本会规范化这些列以及所有过滤的报告必须遵循本示例。

      column_translation = {"billingcurrency": "billingcurrencycode", "currency": "billingcurrencycode", "instanceid": "resourceid", "instancename": "resourceid", "pretaxcost": "costinbillingcurrency", "product": "productname", "resourcegroupname": "resourcegroup", "subscriptionguid": "subscriptionid", "servicename": "metercategory", "usage_quantity": "quantity"}
    • 要过滤数据,您必须添加 dataframe 过滤。例如:

      • 完全匹配: df.loc[(df["publishertype"] == "Marketplace")] 过滤掉没有 Marketplace 的 publisherType 的所有数据。
      • contains: df.loc[df["publishername"].astype (str).str.contains ("Red Hat")] Filters all data in the publisherName.
      • 您可以通过您的 df.loc 子句使用 & amp; (for AND)和 | (OR)来堆栈过滤。
      • 更有用的过滤器:

        subscriptionid
        过滤特定的订阅。
        resourcegroup
        过滤特定的资源组。
        资源位置
        过滤特定区域中的数据。
      • 您可以使用 servicename,servicetier,metercategorymetersubcategory 来过滤特定的服务类型。
  3. 构建自定义查询后,在 # custom filtering basic example # 下方更新示例脚本中的自定义查询。
  4. 保存该文件。

在 Visual Studio Code 中:

  1. 右键单击 Function 窗口,再单击 Deploy to Function App
  2. 选择您在前面的步骤中创建的功能应用程序。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.