コストまたは使用状況レポートのダウンロード

コストまたは使用状況レポートをダウンロードします。

  • コストまたは使用状況レポートをダウンロードするには:
    1. ナビゲーション・メニューを開き、「請求とコスト管理」をクリックします。「コスト管理」で、「コストおよび使用状況レポート」をクリックします。
    2. リストからダウンロードするレポートをクリックし、ブラウザのダウンロード手順に従います。
      FOCUSコスト・レポートをダウンロードするには、「FOCUSレポート」をクリックします。レポートは年、月および日別に編成され、クリックしてダウンロードできます。
  • 次の例のオブジェクト・ストレージlistおよびgetコマンドを使用して、コストまたは使用状況レポートをリストおよびダウンロードします。これらは、APIタスクに示されているPython SDKコード例に相当するOCI CLIコマンドです。

    Oracle管理ネームスペースの"bling"およびバケット(顧客テナンシOCID)から、すべてのコストおよび使用状況レポートをリストします。

    oci os object list --namespace-name bling --bucket-name {customer_tenancy_ocid} --all

    Oracle管理ネームスペースの"bling"およびバケット(顧客テナンシOCID)の2つのコストおよび使用状況レポートをリストします。

    oci os object list --namespace-name bling --bucket-name {customer_tenancy_ocid} --limit 2

    Oracle管理ネームスペース"bling"および"reports/cost-csv"という接頭辞が付いたバケット(顧客テナンシOCID)のすべてのコスト・レポート:

    oci os object list --namespace-name bling --bucket-name {customer_tenancy_ocid} --prefix reports/cost-csv --all

    Oracle管理ネームスペース"bling"およびバケット(顧客テナンシOCID)から、接頭辞"reports/usage-csv"が付いたすべての使用状況レポート:

    oci os object list --namespace-name bling --bucket-name {customer_tenancy_ocid} --prefix reports/usage-csv --all

    Oracle管理ネームスペース"bling"およびバケット(顧客テナンシOCID)のすべてのコスト・レポート(接頭辞"FOCUS Reports"を使用):

    oci os object list --namespace-name bling --bucket-name {customer_tenancy_ocid} --prefix FOCUS Reports --all

    コストまたは使用状況レポートをダウンロードします。

    oci os object get --namespace-name bling --bucket-name {customer_tenancy_ocid}  --name reports/usage-csv/{report_name}.csv.gz --file {local_report_name}.csv.gz

    CLIコマンドのパラメータおよび変数オプションの完全なリストは、コマンドライン・リファレンスを参照してください。

  • APIの使用およびリクエストの署名の詳細は、REST APIのドキュメントおよびセキュリティ資格証明を参照してください。SDKの詳細は、SDKおよびCLIを参照してください。

    コストまたは使用状況レポートをダウンロードするには、オブジェクト・ストレージAPIを使用します。レポートはテナンシのホーム・リージョンに格納されます。レポートで使用されるオブジェクト・ストレージ・ネームスペースは、blingです。バケット名はテナンシOCIDです。

    次の例は、Pythonスクリプトを使用してコスト・レポートまたは使用状況レポート(あるいはその両方)をダウンロードする方法を示しています:

    ノート

    この例では、特定のテナンシOCIDがあります。これは、レポートは、Oracle Cloud InfrastructureによってホストされるOracle所有のオブジェクト・ストレージ・バケットに格納され、顧客のテナンシに格納されないためです。
    import oci
    import os
                                   
    # This script downloads all of the cost, usage, (or both) reports for a tenancy (specified in the config file).
    #
    # Pre-requisites: Create an IAM policy to endorse users in your tenancy to read cost reports from the OCI tenancy.
    #
    # Example policy:
    # define tenancy reporting as ocid1.tenancy.oc1..aaaaaaaaned4fkpkisbwjlr56u7cj63lf3wffbilvqknstgtvzub7vhqkggq
    # endorse group <group_name> to read objects in tenancy reporting
    #
    # Note - The only value you need to change is the <group_name> with your own value. Do not change the OCID in the first statement.
                                   
    reporting_namespace = 'bling'
                                   
    # Download all usage and cost files. You can comment out based on the specific need:
    prefix_file = ""                       #  For cost and usage files
    # prefix_file = "reports/cost-csv"     #  For cost
    # prefix_file = "reports/usage-csv"    #  For usage
    # prefix_file_focus = "FOCUS Reports"  #  For FOCUS reports
                                   
    # Update these values
    destintation_path = 'downloaded_reports'
                                   
    # Make a directory to receive reports
    if not os.path.exists(destintation_path):
        os.mkdir(destintation_path)
                                   
    # Get the list of reports
    config = oci.config.from_file(oci.config.DEFAULT_LOCATION, oci.config.DEFAULT_PROFILE)
    reporting_bucket = config['tenancy']
    object_storage = oci.object_storage.ObjectStorageClient(config)
    report_bucket_objects = oci.pagination.list_call_get_all_results(object_storage.list_objects, reporting_namespace, reporting_bucket, prefix=prefix_file)                          
    for o in report_bucket_objects.data.objects:
        print('Found file ' + o.name)
        object_details = object_storage.get_object(reporting_namespace, reporting_bucket, o.name)
        filename = o.name.rsplit('/', 1)[-1]
                                   
        with open(destintation_path + '/' + filename, 'wb') as f:
            for chunk in object_details.data.raw.stream(1024 * 1024, decode_content=False):
                f.write(chunk)
                                   
        print('----> File ' + o.name + ' Downloaded')