微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Firestore 和 Cloud 任务 api 不可从应用引擎灵活调用

如何解决Firestore 和 Cloud 任务 api 不可从应用引擎灵活调用

我想使用云任务 api 创建任务并从应用引擎柔性环境中推入队列,但它不起作用,也无法在本机模式下使用 firestore api。

使用相同的服务帐户凭据,相同的 API 在 Google Cloud 之外的服务器上运行良好。

下面提到了任务的代码片段

mport json
import datetime
from google.cloud import tasks_v2beta3
from google.protobuf import timestamp_pb2

import json
import datetime
from google.cloud import tasks_v2beta3
from google.protobuf import timestamp_pb2


class CloudTaskManager:
    def __init__(self):
        self.client = tasks_v2beta3.CloudTasksClient()

    def create_task(self,project,queue,location,payload=None,in_seconds=5):
        parent = self.client.queue_path(project,queue)

        task = {
            'app_engine_HTTP_Request': {
                'http_method': tasks_v2beta3.HttpMethod.POST,'relative_uri': '/api/v1/rating/cloud_task_handler','headers': {
                    'Content-Type': 'application/json','Org_Name': 'organization1'
                },'body': json.dumps(payload).encode()
            }
        }

        if in_seconds is not None:
            d = datetime.datetime.utcNow() + datetime.timedelta(seconds=in_seconds)
            timestamp = timestamp_pb2.Timestamp()
            timestamp.FromDatetime(d)
            task['schedule_time'] = timestamp

        response = self.client.create_task(parent=parent,task=task)
        return response

firestore API 的代码片段如下

    # cred = credentials.ApplicationDefault()
    if not firebase_admin._apps:
        firebase_admin.initialize_app(cred,{
          'projectId': 'project-id',})
    db = firestore.client()
    collection_refs = db.collection('collection-name')
    documents = collection_refs.stream()
    for doc in documents:
        return doc.to_dict()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。