通过云功能从云存储中读取数据

rar*_*aaa 6 python python-3.x google-cloud-storage google-cloud-platform google-cloud-functions

我正在尝试对在Python中建立数据处理管道的概念进行快速证明。为此,我想构建一个Google Function,当将某些.csv文件放入Cloud Storage时将触发该函数。

我遵循了此Google Functions Python教程,尽管示例代码的确触发了Function在删除文件时创建一些简单的日志,但实际上我被困在实际读取数据内容所必须进行的调用上。我试图搜索SDK / API指导文档,但找不到。

如果这是相关的,那么一旦我处理了.csv,我希望能够将从中提取的一些数据添加到GCP的发布/订阅中。

Dus*_*ram 9

该函数实际上并不接收文件的内容,而只是接收有关文件的一些元数据。

您将要使用google-cloud-storage客户端。有关更多详细信息,请参见“下载对象”指南。

将其与您正在使用的教程放在一起,您将获得如下功能:

from google.cloud import storage

storage_client = storage.Client()

def hello_gcs_generic(data, context):
    bucket = storage_client.get_bucket(data['bucket'])
    blob = bucket.blob(data['name'])
    contents = blob.download_as_string()
    # Process the file contents, etc...
Run Code Online (Sandbox Code Playgroud)


Sou*_*hra 5

这是使用以下方法的替代解决方案pandas

云函数代码:

import pandas as pd

def GCSDataRead(event, context):
    bucketName = event['bucket']
    blobName = event['name']
    fileName = "gs://" + bucketName + "/" + blobName
    
    dataFrame = pd.read_csv(fileName, sep=",")
    print(dataFrame)
Run Code Online (Sandbox Code Playgroud)