我是GCP和Python的新手。我的任务是通过Python使用谷歌云函数将JSON文件导入谷歌firestore。
请协助。
我可以使用以下代码实现此系统设置。张贴供您参考:-
云功能代码
REQUIMENTS.TXT(依赖项(
`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`
MAIN.PY
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)
Cloud函数是谷歌提供的无服务器功能。云函数的美妙之处在于,一旦执行完成,它将销毁它将调用任何发生的触发器及其本身。云功能是单一用途的功能。不仅是python,您还可以使用NodeJS和Go编写云函数。通过访问云功能的快速启动,您可以非常容易地创建云功能(https://cloud.google.com/functions/docs/quickstart-console)。
您的任务是将一个JSON文件导入googlefirestore。这部分你可以像任何普通的python程序一样使用Firestore python连接器,并添加到云功能控制台或通过gcloud上传。这里仍然缺少触发器部分。正如我提到的,云功能是无服务器的。它将在附加触发器中发生任何事件时执行。您在这里没有提到任何触发器(当您想要触发函数时(。一旦你提供了关于触发器的信息,我就可以提供更多关于解决方案的见解。
Ishank Aggarwal,您可以通过以下步骤将上述代码片段添加为云函数的一部分:
- https://console.cloud.google.com/functions/
- 使用函数名称、您的需求创建函数,选择运行时作为python,并选择触发器作为您的gcs bucket
一旦您创建了它,如果您的bucket中发生任何更改,该函数将触发并执行您的代码