я хочу экспортировать Google sccfindings в таблицу запросов biq с помощью облачных функций, но при получении ошибки объект «клиент» не имеет атрибута «list_findings» - PullRequest
0 голосов
/ 18 января 2020

Python функция для вывода результатов и получения сообщения об ошибке. Клиентский объект не имеет атрибута list_findings и include.txt (google-cloud-securitycenter и biq query)

import os
import json
from google.cloud import bigquery


def test_list_all_findings(request):
    if request.method != 'POST':
        return abort(405)
    request_json = request.get_json()
    # [START list_all_findings]
    from google.cloud import securitycenter

    # Create a client.
    client = securitycenter.SecurityCenterClient()
    client = bigquery.Client()
    cuid = request_json['cuid']
    organization_id = request_json['organization_id']
    # organization_id is the numeric ID of the organization. e.g.:
    organization_id = organization_id
    org_name = "organizations/{org_id}".format(org_id=organization_id)
    # The "sources/-" suffix lists findings across all sources.  You
    # also use a specific source_name instead.
    all_sources = "{org_name}/sources/-".format(org_name=org_name)
    finding_result_iterator = client.list_findings(all_sources)
    job_config = bigquery.CopyJobConfig()
    job_config.write_disposition = "WRITE_TRUNCATE"
    destination_table_id = "gce-kubernetes.onboard_gcp.cc_data_billing_"+cuid

    blob = destination_table_id.blob("findings.json")

    f=open("/tmp/findings.json", "a+")
    for i, finding_result in enumerate(finding_result_iterator):
        s = "{}) 'name': {}, resource: {}, destination_table_id: {}".format(
            i, finding_result.finding.name, finding_result.finding.resource_name, destination_table_id)
        print(s)
        f.write(str(finding_result))
        f.write(",\n")
    f.close()
    blob.upload_from_filename('/tmp/findings.json')
    os.remove("/tmp/findings.json")
    # [END list_all_findings]

Error image for cloud function logs

...