Google cloud platform 谷歌云功能:错误:超出内存限制。函数调用被中断,但它可以工作

Google cloud platform 谷歌云功能:错误:超出内存限制。函数调用被中断,但它可以工作,google-cloud-platform,google-cloud-functions,Google Cloud Platform,Google Cloud Functions,我创建了一个新的python google函数,它每10分钟在BigQuery中安排一次查询,我对它进行了测试,结果正常 部署工作正常 测试给出此错误:错误:超出内存限制。日志不可用(但我可以看到,在BigQuery中查询确实按预期运行) 在cloud scheduler中使用http触发器,我得到了错误消息状态为503的失败消息,但在BigQuery控制台中,我可以再次看到,它正在按预期运行 编辑:这里是函数的代码 from google.cloud import bigquery

我创建了一个新的python google函数,它每10分钟在BigQuery中安排一次查询,我对它进行了测试,结果正常

  • 部署工作正常

  • 测试给出此错误:错误:超出内存限制。日志不可用(但我可以看到,在BigQuery中查询确实按预期运行)

  • 在cloud scheduler中使用http触发器,我得到了错误消息状态为503的失败消息,但在BigQuery控制台中,我可以再次看到,它正在按预期运行

编辑:这里是函数的代码

from google.cloud import bigquery


    def load(request):
        client = bigquery.Client()
        dataset_id = 'yyyyyyyy'
        table_id='xxxxxxxxxxx'
        job_config = bigquery.QueryJobConfig()
        job_config.use_legacy_sql = False
        table_ref = client.dataset(dataset_id).table(table_id)
        job_config.destination = table_ref
        job_config.write_disposition = bigquery.WriteDisposition.WRITE_TRUNCATE
        sql = """
            SELECT * FROM `xxxxxx.datastudio.today_view`;
        """
    
        query_job = client.query(sql,location='asia-northeast1',job_config=job_config)
        query_job.result()
        print("Job finished.")

BigQuery作业是异步的。你的云函数会触发它并等待完成。如果函数在这两个服务之间失败,则这不是问题,这两个服务不相关

如果您通过API执行此操作,那么在创建作业(查询)时,您会立即得到一个作业ID。然后你必须定期调查这份工作的ID以了解它的状态。客户机库的功能完全相同

您的内存不足问题来自以下结果:。设置页面大小或最大结果以限制返回的数据


但是,您也可以不等待结束并立即退出(跳过行
query\u job.result()
)。您将节省云函数处理(无用的等待)时间,从而节省金钱

你能添加这个云函数的一些示例代码吗?我添加了代码,请注意代码工作。我在其他函数中使用相同的代码,它工作正常。当我删除query_job.result()时,我收到了这个错误500内部服务器错误内部服务器错误服务器遇到内部错误,无法完成您的请求。服务器过载或应用程序出错。

您没有返回。在末尾添加
返回'job running',200
,以优雅地退出。格式:
返回,