検索

2.6. Microsoft Azure での関数の作成

download PDF

Azure で関数を作成すると、データがフィルター処理され、Red Hat との共有用に作成したストレージアカウントに追加されます。このセクションのサンプル Python スクリプトを使用して、エクスポートからフィルタリングされたコストデータを収集して共有できます。

前提条件

  • デバイスに Visual Studio Code がインストールされている必要がある。
  • Visual Studio Code に Microsoft Azure Functions エクステンションがインストールされている必要がある。Azure 関数を作成する場合、Microsoft は、Microsoft Visual Studio Code IDE を使用してコードを開発およびデプロイすることを推奨しています。Visual Studio Code の設定に関する詳細は、Quickstart: Create a function in Azure with Python using Visual Studio Code を参照してください。

Microsoft Azure アカウント:

  1. 検索バーに functions と入力し、Function App を選択します。
  2. Create をクリックします。
  3. 関数のホスティングオプションを選択し、Select をクリックします。
  4. Create Function App ページで、リソースグループを追加します。

    1. Instance Details セクションで、関数アプリケーションに名前を付けます。
    2. Runtime stackPython を選択します。
    3. Version で latest を選択します。
  5. Review + Create をクリックします。

    1. Create をクリックします。
    2. リソースが作成されるまで待ってから、Go to resource をクリックして表示します。

Visual Studio Code の場合:

  1. Microsoft Azure タブをクリックし、Azure にサインインします。

    1. Workspaces ドロップダウンで、オレンジ色の稲妻のアイコンとして表示される Azure Functions をクリックします。
    2. Create Function をクリックします。
  2. 指示に従ってローカルの場所を設定し、関数の言語とバージョンを選択します。この例では、PythonModel 2、および利用可能な最新バージョンを選択します。
  3. 関数の Select a template ダイアログで、Timer trigger を選択し、関数に名前を付けて、Enter キーを押します。
  4. 関数の実行のタイミングを制御する cron 式を設定します。この例では、0 9 * * * を使用して、関数を毎日 9 AM で実行します。

    1. Create をクリックします。
    2. Open in the current window をクリックします。

requirements.txt ファイルの場合:

  1. 開発環境で関数を作成したら、requirements.txt ファイルを開き、以下の要件を追加してファイルを保存します。
azure-functions
pandas
requests
azure-identity
azure-storage-blob

init.py の場合:

  1. Python スクリプト をコピーし、`init.py` に貼り付けます。
  2. # Required vars to update とマークされたセクションの値を変更して、環境に対応する値に更新します。

    • サンプルスクリプトでは、Azure Key Vault のシークレットを使用して、サービスアカウントの 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"}
    • データをフィルタリングするには、データフレームのフィルタリングを追加する必要があります。以下に例を示します。

      • 完全一致: df.loc[(df["publishertype"] == "Marketplace")] publisherType は、Marketplace 以外のすべてのデータを除外します。
      • Contains: df.loc[df["publishername"].astype (str).str.contains ("Red Hat")] は、publisherName に Red Hat が含まれていないすべてのデータをフィルタリングします。
      • df.loc 句で & (AND の場合) と | (OR の場合) を使用してフィルターをスタックできます。
      • さらに便利なフィルター:

        subscriptionid
        特定のサブスクリプションをフィルタリングします。
        resourcegroup
        特定のリソースグループをフィルタリングします。
        resourcelocation
        特定のリージョンでデータをフィルタリングします。
      • 特定のサービスタイプをフィルタリングするには、servicenameservicetiermetercategory、および metresubcategory を使用できます。
  3. カスタムクエリーを作成したら、# custom filtering basic example # の下にあるサンプルスクリプトでカスタムクエリーを更新します。
  4. ファイルを保存します。

Visual Studio Code の場合:

  1. Function ウィンドウを右クリックし、Deploy to Function App をクリックします。
  2. 前の手順で作成した関数アプリケーションを選択します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.