当前位置: 首页 > 知识库问答 >
问题:

如何在Python3中使用App Engine调度云数据存储导出

漆雕彦
2023-03-14
    from google.appengine.api import app_identity
    access_token, _ = app_identity.get_access_token('https://www.googleapis.com/auth/datastore')

但是根据这里的说法,python3不支持这个库。

如何在Python3中获得access_token?

共有1个答案

廖华翰
2023-03-14

App.Yaml

runtime: python37

handlers:
- url: /.*
  script: auto

(如果需要,使用service:service_name)部署到非默认服务

requirements.txt

Flask
google-api-python-client
import datetime
import os
from googleapiclient.discovery import build

from flask import Flask, render_template, request

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello, World!'    

@app.route('/cloud-datastore-export')
def export():
    # Deny if not from the Cron Service
    assert request.headers['X-Appengine-Cron']
    # Deny if output_url_prefix not set correctly
    output_url_prefix = request.args.get('output_url_prefix')
    assert output_url_prefix and output_url_prefix.startswith('gs://')
    timestamp = datetime.datetime.now().strftime('%Y%m%d-%H%M%S')
    if '/' not in output_url_prefix[5:]:
      # Only a bucket name has been provided - no prefix or trailing slash
      output_url_prefix += '/' + timestamp
    else:
      output_url_prefix += timestamp
    kinds = request.args.getlist('kind')
    namespace_ids = request.args.getlist('namespace_id')
    entity_filter = {
        'kinds': kinds,
        'namespace_ids': namespace_ids 
    }
    body = {
        'output_url_prefix': output_url_prefix,
        'entity_filter': entity_filter
    }
    project_id = os.environ.get('GOOGLE_CLOUD_PROJECT')
    client = build('datastore', 'v1')
    client.projects().export(projectId=project_id, body=body).execute()  
    return 'Operation started' 


if __name__ == '__main__':
    # This is used when running locally only. When deploying to Google App
    # Engine, a webserver process such as Gunicorn will serve the app. This
    # can be configured by adding an `entrypoint` to app.yaml.
    # Flask's development server will automatically serve static files in
    # the "static" directory. See:
    # http://flask.pocoo.org/docs/1.0/quickstart/#static-files. Once deployed,
    # App Engine itself will serve those files as configured in app.yaml.
    app.run(host='127.0.0.1', port=8080, debug=True)
 类似资料:
  • 问题内容: 目前我正在使用这样的东西: 但是事实证明,AppEngine上的数据存储区中的ID不是从1开始的。我在数据存储区中有两个图像,其ID为6001和7001。 有没有更好的方法来检索随机图像? 问题答案: 数据存储是分布式的,因此ID是非顺序的:两个数据存储节点需要能够同时生成ID而不会引起冲突。 要获得随机实体,可以在创建时将0到1之间的随机浮点数附加到每个实体。然后进行查询,执行以下操

  • 我试图在我的云功能中访问Firebase云存储,但我一直在云功能日志中出现以下错误: 下面是我的代码: const admin=需要('Firebase-admin'); const函数=需要('Firebase-函数'); 下面是我的包中的依赖项。json: PS:我在星火计划上

  • 问题内容: 目前,我正在使用一项服务来执行操作,即从服务器检索数据,然后将数据存储在服务器本身上。 取而代之的是,我想将数据放入本地存储中,而不是将其存储在服务器上。我该怎么做呢? 问题答案: 这是我存储和检索到本地存储的代码的一部分。我使用广播事件来保存和恢复模型中的值。

  • 问题内容: 我正在尝试决定是否应针对App引擎关联的Android项目使用App引擎搜索API或数据存储区。Google文档的唯一区别是 …索引搜索最多只能找到10,000个匹配的文档。App Engine数据存储区可能更适合需要检索非常大的结果集的应用程序。 鉴于我已经非常熟悉数据存储区:假设我不需要10,000个结果,有人可以帮我吗? 是否有任何优势,利用与使用数据存储为我的查询(根据上面的报

  • 问题内容: 我正在尝试使用他们的电子邮件地址在appengine数据存储区中查找用户。我正在使用Go。 此代码找不到任何用户。 如果我更改查询以使用“ Id”属性查找用户,则可以正常工作。 我已经确认“ AccountEmail”的属性名称和值正确。“ AccountEmail”它也被索引。 为了使查询正常工作,是否需要使用电子邮件地址进行某些特殊格式设置? 问题答案: 为了通过电子邮件()查找用

  • 开发企业级移动应用程序(Android/iOS/Web),使用谷歌PLAFORM-AppEngine、云endpoint、云存储、datastore等。 正在关注谷歌在中国被屏蔽的服务: null null 谢谢