Fazendo Download de um Relatório de Custos

Faça download de um relatório de custos no Billing and Cost Management.

Um relatório de custos é um arquivo armazenado como objeto em um bucket. Para obter informações gerais sobre como fazer download de um objeto, consulte Fazendo Download de um Objeto do Serviço Object Storage.

Para obter informações sobre como listar relatórios de custo, consulte Listando Relatórios de Custo.

    1. Na página de lista Relatórios de Custo e Uso, localize o relatório de custo do qual você deseja fazer download. Se precisar de ajuda para localizar a página da lista ou o relatório de custos, consulte Listando Relatórios de Custos.
    2. No menu Ações Menu Ações do relatório de custos, selecione Fazer Download do relatório.
  • Observação

    Os relatórios de custos são armazenados na região home da tenancy. O namespace do Serviço Object Storage usado para os relatórios é bling. O nome do bucket é o OCID da tenancy.

    Use o comando oci os object get e os parâmetros necessários para fazer download de relatórios de custos na tenancy:

    oci os object get --bucket-name bucket-name --name object-name --file file-name

    Exemplo (referência ao exemplo de código do Python SDK mostrado na tarefa da API):

    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

    Para obter uma lista completa de parâmetros e valores para comandos da CLI, consulte a Referência de Comandos da CLI.

  • Observação

    Os relatórios de custos são armazenados na região home da tenancy. O namespace do Serviço Object Storage usado para os relatórios é bling. O nome do bucket é o OCID da tenancy.

    Execute a operação GetObject para fazer download de um relatório de custos.

    O exemplo a seguir mostra como fazer download de um relatório de custos com um script Python:

    Observação

    Este exemplo tem um OCID de tenancy específico, porque os relatórios são armazenados em um bucket do serviço Object Storage de propriedade da Oracle hospedado pelo Oracle Cloud Infrastructure e não na tenancy de um cliente.
    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_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')