原価レポートFOCUSコンバータ機能
OCI FunctionsのCost Reports FOCUS Converterの事前組込み関数を使用して、OCIで生成されたコスト・レポートcsvファイルをFinOps Open Cost and Usage Specification (FOCUS)スキーマzipファイルに変換し、zipファイルをOCI Object Storageの指定されたターゲット・バケットに保存する方法をご覧ください。
一般的な使用方法のシナリオ
コスト・レポートFOCUSコンバータ機能を使用する一般的な方法は次のとおりです。
- 請求およびコスト管理サービス・テナンシのオブジェクト・ストレージ・バケットに存在するOCI生成コスト・レポート・ファイルを読み取り、関数を直接起動してファイルを変換し、結果のzipファイルをテナンシのオブジェクト・ストレージ・バケットに格納します。
コスト・レポートFOCUSコンバータ機能に関連するサービスは次のとおりです。
有効範囲
この関数のスコープに関する考慮事項は次のとおりです。
- デフォルトのタイムアウトが300秒に設定されている場合は、組み込み関数が最適に動作します。
- ファンクションの実行時間は、開始日と終了日の間に存在する入力ファイルの数によって異なります。
前提条件と推奨事項
コスト・レポートFOCUSコンバータの事前作成機能を使用するには、テナンシのルート・コンパートメントに追加のエンドースIAMポリシーを手動で追加する必要があります。追加の承認IAMポリシーにより、請求およびコスト管理サービス・テナンシへのクロステナンシ・コールが可能になります。事前構築済ファンクションには、承認IAMポリシーが必要です。エンドース・ポリシーがないと、事前組込みファンクションはコスト・レポートにアクセスできないことに注意してください。エンドースIAMポリシーの作成の詳細は、権限を参照してください
この事前構築済関数はホーム・リージョンで作成する必要があります。
この事前作成機能を使用する場合のベスト・プラクティスを次に示します。
- 事前構築済み関数のタイムアウトを300秒に設定します。
- アプリケーションにリンクされたVCNは、サービス・ゲートウェイ、インターネット・ゲートウェイまたはNATゲートウェイを使用して他のOCIサービスへのアクセスを容易にします。
- デフォルトのメモリーサイズを、関数で許可される最大メモリーに設定します。
コスト・レポートFOCUSコンバータ機能の構成
コスト・レポートFOCUSコンバータ機能を構成するには、次のステップを実行します。
デプロイ・ダイアログに、ファンクションをデプロイするタスクが表示されます(「事前構築済ファンクション・デプロイメントの終了」を参照)。
構成オプション
構成パラメータ
名前 | 説明 | 必須 |
---|---|---|
PBF_LOG_LEVEL |
ロギング・レベル、オプションはDEBUG 、INFO 、WARN およびERROR です。デフォルトはINFOです。 |
いいえ |
権限
ファンクションを実行するには、特定のIAMポリシーが必要です。ファンクションの作成時に「動的グループおよびIAMポリシーを作成しない」オプションを選択した場合は、動的グループおよびIAMポリシーを自分で定義する必要があります。
適切なポリシーを設定するには、次のステップを実行します。
- ルールを使用して動的グループを作成します:
ALL {resource.id = '<function_ocid>', resource.compartment.id = '<compartment_ocid>'}
- 動的グループを使用してIAMポリシーを構成します:
Allow dynamic-group <dynamic-group-name> to read objectstorage-namespaces in compartment <compartment-name> Allow dynamic-group <dynamic-group-name> to manage objects in compartment <compartment-name> Allow dynamic-group <dynamic-group-name> to manage buckets in compartment <compartment-name> Allow dynamic-group <dynamic group name> to read compartments in compartment <compartment-name>
<function-ocid>
を、前のステップで作成したファンクションのOCIDに置き換えます。 <dynamic-group-name>
を、ファンクションのOCIDを使用して作成した動的グループの名前に置き換えます。<compartment_ocid>
を、ファンクションを含むコンパートメントのOCIDに置き換えます。コスト・レポートFOCUSコンバータの事前作成機能を実行するには、テナンシのルート・コンパートメントに次の承認IAMポリシーを手動で追加して、請求およびコスト管理サービス・テナンシに格納されているコスト・レポートにファンクションがアクセスできるようにする必要があります:
Define tenancy bling as ocid1.tenancy.oc1..aaaaaaaaned4fkpkisbwjlr56u7cj63lf3wffbilvqknstgtvzub7vhqkggq
Endorse dynamic-group <dynamic-group-name> to read objects in tenancy bling
事前構築済ファンクションには承認IAMポリシーが必要であり、ポリシーを手動で作成する必要があります。エンドース・ポリシーがないと、事前組込みファンクションはコスト・レポートにアクセスできません。
この関数の起動
この関数は、次の方法で呼び出すことができます。
- 次のJSONの例に示すように、リクエスト本文を作成して、ファンクションの呼出しに記載されているとおりにファンクションを直接起動します。
HTTPリクエストJSON値
名前 | 説明 | 必須 |
---|---|---|
COMPARTMENT_ID | テナンシ内のコンパートメントのOCID。ターゲット・バケットがこのコンパートメントに存在しない場合、事前構築済ファンクションは、このコンパートメントに新しいターゲット・バケットを作成します。このコンパートメントは、必要なIAMポリシーを作成するときにも使用されます。 | はい |
リージョン | ホーム・リージョンの名前。この事前構築済関数はホーム・リージョンで作成する必要があります。 | はい |
ネームスペース | Billing and Cost Managementサービス・テナンシ・ネームスペース(bling)。このネームスペースは、ソース・バケットからOCIで生成されたコスト・レポートcsvファイルを読み取るために使用されます。 | はい |
SOURCE_BUCKET | OCIで生成されたコスト・レポートcsvファイルを含む、請求およびコスト管理サービス・テナンシ内のソース・バケットの名前。この値はテナンシのOCIDである必要があります。 | はい |
TARGET_BUCKET | テナンシ内のターゲット・バケットの名前。この名前のターゲット・バケットが存在しない場合、事前構築済ファンクションは、COMPARTMENT_IDで指定されたコンパートメントにバケットを作成します。 | はい |
START_DATE | 事前構築済ファンクションは、この日付以降に作成されたソース・バケットからのみファイルを読み取ります。タイムアウト制限が300秒であるため、事前構築済ファンクションで処理されるファイルの数を制限するには、開始日が必要です。 | はい |
END_DATE | 事前構築済ファンクションは、この日付以前に作成されたソース・バケットからのみファイルを読み取ります。 | はい |
サンプル要求本文
{
"COMPARTMENT_ID": "ocid1.compartment.oc1...",
"REGION": "us-ashburn-1",
"NAMESPACE": "bling",
"SOURCE_BUCKET": "ocid1.tenancy.oc1...",
"TARGET_BUCKET": "target-storage",
"START_DATE": "2024-05-01",
"END_DATE": "2024-05-31"
}
レスポンス本文
- タイムスタンプ:タイムゾーンの問題を回避するためにUTCを使用します。
- コード:タスクが正常に完了すると、この関数は200コードを返します。
- ステータス:タスクが正常に完了すると、この関数はステータスとして「成功」を返します。
- データ:タスクの特定のレスポンス情報を含むJSONメッセージ本文。変換操作が成功した場合は、追加情報によって確認メッセージが表示されます。
例
次の例は、JSON戻りデータを示しています。
{
"startTime": "2023-02-22T05:55:06.544Z",
"endTime": "2023-02-22T05:55:17.730Z",
"runTime": "PT11.186S",
"code": 200,
"status": "Success",
"data": {
"additionalInformation": {
"Message": "Conversion task is successfully done"
}
}
}
問題解決
OCI Functions共通ステータス・コード
次の表に、事前構築済ファンクションの操作時に発生する可能性がある一般的なOCIファンクション・エラーの概要を示します。
エラー・コード | Error Message | アクション |
---|---|---|
200 | 完了 | なし |
404 | NotAuthorizedOrNotFound | 必要なポリシーが構成されていることを確認します(FnプロジェクトのCLIコマンドの実行による404エラーの戻りを参照)。 |
444 | タイム・アウト |
ファンクションの実行中にクライアントとOCIファンクション間の接続が中断されました(ファンクションを呼び出すと、クライアントがタイムアウトをレポートし、ファンクションのログに444エラーが表示されますを参照)。再試行すると問題が解決する可能性があります。 ほとんどのクライアントの内部タイムアウトは60秒です。組み込み関数のタイムアウトが300秒に設定されている場合でも、次のことが必要な場合があります。
詳細は、関数の呼出しを参照してください。 |
502, 504 | (各種) | ほとんどの問題では、502ステータス・コードが返されます(「ファンクションの呼出しは、ファンクションの失敗メッセージおよび502エラーを返します」を参照)。「error receiving function response」というメッセージを含む502エラーは、メモリー割り当てを増やすことによって解決される可能性があります。502は、関数が一時的な状態にあるときに発生することがあります。再試行すると問題が解決する可能性があります。 |
原因をさらに特定するには、事前構築済ファンクションのロギング機能を有効にします(ファンクション・ログの格納および表示を参照)。ファンクションのトラブルシューティングの詳細は、OCIファンクションのトラブルシューティングを参照してください。
コスト・レポートFOCUSコンバータ事前作成機能ステータス・コード
次の表に、この事前作成機能の使用時に発生する可能性のあるエラーの概要を示します。
エラー・コード | Error Message | アクション |
---|---|---|
400 | 必須の構成値がありません | エラー・メッセージは、必須フィールド名を示します。リクエスト本文に正しいフィールドが指定されていることを確認します。 |
原因をさらに特定するには、事前構築済ファンクションのロギング機能を有効にします(ファンクション・ログの格納および表示を参照)。
ログ分析のヒント
すべての組み込み関数は、ロギングレベルを構成パラメータとして指定するオプションを提供します。ロギング・レベルをDEBUG
に設定して、詳細情報を取得できます。
アプリケーションには複数の関数があるため、事前に作成された関数ログエントリは接頭辞「PBF | <PBF NAME>」で識別されます。
たとえば、Cost Reports FOCUS Converterの事前作成機能のログ・エントリは次のようになります。
"PBF | FOCUS Converter | INFO | 2023-02-07T18:06:50.809Z | Target Bucket Details from input payload: Bucket Name: target-storage File path: /"