Google cloud platform 使用云函数将JSON文件导入google firestore

Google cloud platform 使用云函数将JSON文件导入google firestore,google-cloud-platform,google-cloud-firestore,google-cloud-functions,Google Cloud Platform,Google Cloud Firestore,Google Cloud Functions,我不熟悉GCP和Python。我有一项任务,就是通过Python使用google云函数将JSON文件导入google firestore 请帮忙。云功能是谷歌提供的无服务器功能。云函数的美妙之处在于它会破坏它,一旦执行完成,它会调用任何触发器。云功能是单一用途的功能。不仅是python,还可以使用NodeJS编写云函数。通过访问QuickStart of cloud functions(),您可以非常轻松地创建云函数 您的任务是将JSON文件导入google firestore。这一部分您可以像

我不熟悉GCP和Python。我有一项任务,就是通过Python使用google云函数将JSON文件导入google firestore


请帮忙。

云功能是谷歌提供的无服务器功能。云函数的美妙之处在于它会破坏它,一旦执行完成,它会调用任何触发器。云功能是单一用途的功能。不仅是python,还可以使用NodeJS编写云函数。通过访问QuickStart of cloud functions(),您可以非常轻松地创建云函数


您的任务是将JSON文件导入google firestore。这一部分您可以像任何普通python程序一样使用Firestore python连接器完成,并添加到云函数控制台或通过gcloud上传。这里仍然缺少触发部分。正如我提到的,云功能是无服务器的。它将在附加触发器中发生任何事件时执行。您在这里没有提到任何触发器(当您想要触发函数时)。一旦您提供了有关触发器的信息,我就可以提供有关分辨率的更多信息。

我可以使用以下代码实现此系统设置。发帖供你参考:-

云功能代码 REQUIREMENTS.TXT(依赖项) MAIN.PY
Ishank Aggarwal,您可以通过以下步骤将上述代码片段添加为云函数的一部分:

  • 使用函数名和您的需求创建函数,选择运行时作为python,选择触发器作为gcs存储桶

  • 一旦您创建了它,如果bucket中发生任何更改,该函数将触发并执行您的代码

    我相信您所需要的部分代码已经在某处可用。你发现了什么?你到底错过了什么?@MarCialR,事实上我对GCP和python也是新手。因此,无法理解通过云函数执行导入所需编写的实际代码。您的文件大小是多少?你的文件的格式是什么?是否只有一个JSON文档要加载到firestore(只有一个文档)?还是要拆分此唯一文档?或者您的文件每行包含1个json文档(JSONL格式)?告诉我们更多!谢谢你提供的细节。触发点是云存储桶中的JSON文件上传。你能不能帮我编写代码,通过python连接firestore并将其放入云函数中。我一直到在cloud bucket触发器上触发cloud函数,然后读取JSON文件。现在的任务是连接firestore并将JSON数据转储到其中。谢谢
    `google-api-python-client==1.7.11
    google-auth==1.6.3
    google-auth-httplib2==0.0.3
    google-cloud-storage==1.19.1
    google-cloud-firestore==1.6.2`
    
    from google.cloud import storage
    from google.cloud import firestore
    import json
    
    client = storage.Client()``
    
    def hello_gcs_generic(data, context):
    
    print('Bucket: {}'.format(data['bucket']))
    print('File: {}'.format(data['name']))
    
    bucketValue = data['bucket']
    filename = data['name']
    print('bucketValue : ',bucketValue)
    print('filename : ',filename)
    
    testFile = client.get_bucket(data['bucket']).blob(data['name'])
    dataValue = json.loads(testFile.download_as_string(client=None))
    print(dataValue)
    
    db = firestore.Client()
    
    doc_ref = db.collection(u'collectionName').document(u'documentName')
    doc_ref.set(dataValue)