如何解决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 举报,一经查实,本站将立刻删除。