问题标签 [google-app-engine-python]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
94 浏览

google-app-engine - 找不到 GoogleAppEngine 错误目录

我一直在努力让代理在我上学时工作,以访问我经常用于工作但我的学校不喜欢的网站。这是我尝试将文件上传到谷歌应用程序引擎时出现的错误。


C:\Program Files (x86)\Google\google_appengine>"C:\Python27\python.exe" appcfg.p y 更新 C:\Users\alastair\Desktop\School Files\Proxy Files\mirrorrr-master\mirrorrr-master

09:44 PM 主持人:appengine.google.com 用法:appcfg.py [options] update | [文件, ...]

appcfg.py:错误:目录不包含 School.yaml 配置文件


所以我很困惑为什么它要求一个“School.yaml”但我还是做了一个,即使它已经做了,它仍然显示这个错误,所以如果有人可以帮忙,请!

0 投票
1 回答
337 浏览

google-app-engine - AppEngine Cloud Trace 是否需要 AppStats?

谷歌的 AppEngine 已经升级了他们的开发者控制台,它包括一个名为Cloud Trace的监控工具。这是AppStats分析工具的改进版本吗?如果是这样,我可以删除以前需要的配置文件,比如appengine_config.py和控制台路径app.yaml吗?

0 投票
1 回答
169 浏览

python - 谷歌推送部署发布管道已禁用?

我确实有一个在 Google App Engine 上运行的小型 Python 应用程序。有一段时间我确实使用了谷歌的推送部署功能,一旦我将主分支的新版本推送到我的 bitbucket git-repository,它就会自动部署应用程序。

我最近重命名了我的存储库,并注意到 Google 开发者控制台中的发布管道不再工作。我无法添加简单的发布管道,而是收到以下消息:

有关如何设置 Jenkins 以及为您的 GCP 应用程序配置持续部署的信息,请参阅此文档。

  • 如何再次利用简单的推送部署解决方案?
  • 使用 Jenkins 有什么好处吗?据我了解,我现在必须订阅一个为我运行 Jenkins 的 Google Compute Engine 实例。但我想远离维护虚拟机。
0 投票
1 回答
54 浏览

google-app-engine - 我可以让 GCS 私有隔离存储桶具有每个存储桶唯一的 api 密钥吗?

我想让我的每个客户在我的启用 GCS 的应用程序下访问他们自己的存储桶。

我还需要确保用户的存储桶不受其他用户操作的影响。

最后但并非最不重要的一点是,客户将是一个客户端应用程序,因此整个过程需要透明地完成,而不要求用户登录。

如果我在每个存储桶上应用 ACL,仅向我想要的用户授予访问权限,我是否可以仅为该存储桶创建 API 密钥并将该 API 密钥交给客户端应用程序以执行 GCS API 调用?

0 投票
1 回答
136 浏览

python - 任务队列/延迟中的 blobstore

我正在尝试使用任务队列和延迟将大型用户信息列表从 json 文件导入数据存储。

AUser包含用户的信息,包括来自不同应用程序的图像 url。在导入过程中,应抓取图像并将其上传到 blob(测试时效果很好)。

我一直在获取上传图像的 blob_key 。而且我认为它只发生在任务队列/延迟中,因为我在“普通”GET 请求处理程序中尝试过它,它工作得很好。

这是我的处理程序:

这是我的功能:

部分回溯:

PS:我也尝试过 taskqueue 而不是 deferred。

编辑(1):

这是回溯:

0 投票
3 回答
3105 浏览

python - AppEngine urlfetch validate_certificate=False/None 不被尊重

在 AppEngine 开发者应用服务器中,我收到如下错误:

当我对https具有自签名证书的服务器进行这样的提取时(几乎总是localhost通过 ssh 端口转发到 vm):

虽然这很可能是 Python 中始终验证 ssl 证书的 2.7.9 策略的副作用,但人们不会期望 SSL 失败的无效证书 where validate_certificateis 。False

请注意,传递False(而不是None) forvalidate_certificate也不起作用。

这个问题发生在 Python 2.7.9-10 通过 Homebrew/XCode 在 OS X 10.10.2-4 和 AppEngine 1.9.18 到 1.19.26 上。

Google App Engine 上有关于此的问题(例如12096),但我正在寻找解决方法。

这是我试图解决的问题:

  1. 将证书添加到 Mac 的登录钥匙串(在浏览器中工作,而不是来自 Python)

  2. 将证书添加到app-engine-python/lib/cacerts/cacerts.txt和/或./lib/cacerts/urlfetch_cacerts.txt (尽管这可能需要打开验证才能使其工作,因为这似乎是使用它们的唯一情况),例如

    $ echo >> /usr/local/share/app-engine-python/lib/cacerts/urlfetch_cacerts.txt

    $ openssl x509 -subject -in server.crt >> /usr/local/share/app-engine-python/lib/cacerts/urlfetch_cacerts.txt

  3. 使用PEP-0476解决方法禁用 ssl HTTPs 检查,即

    ssl._create_default_https_context = ssl._create_unverified_context

    在或之后import ssl(大约第 1149 行)google/appengine/dist27/python_std_lib/httplib.py

这在 Mac 上尤其成问题,因为从 XCode 7/OS X El Capital 降级不再是一个实际的选择。

一个更可取的解决方法是不涉及每次更新开发应用服务器时都对 AppEngine 代码进行猴子修补。


编辑

请注意,Mac 内置的 OpenSSL 证书存储在 中/System/Library/OpenSSL,受SIP/rootlessness保护,坦率地说,如果可以的话,这是一个很痛苦的功能,并且值得保留。

我已验证证书是否通过使用openssl s_client -connect localhost:7500 -CAfile server.pem.

它已被添加到钥匙串和哈希来自/usr/local/etc/openssl/certs的格式(或自制 ssl,即)中。在这种情况下验证证书(但 python 仍然没有)。hash.#openssl x509 -subject_hash -in server.pem/usr/local/Cellar/openssl/1.0.2d_1/bin/openssl/usr/local/Cellar/openssl/1.0.2d_1/bin/openssl s_client -connect localhost:7500

我曾尝试使用自制版本的 python 和 openssl,但无济于事。在 Python 中运行以下命令似乎总是失败;

这也会失败 whereSSL_CERT_FILE设置为服务器的证书(即,对于添加的措施,人们可能希望它工作,因为openssl命令本质上是这样工作的),并且也失败 whereSSL_CERT_PATH设置为/usr/local/etc/openssl/certs.

注意,pve是一个虚拟环境,其中help(ssl)显示FILE/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py

进一步验证_ssl.so我运行的自制 Python 到自制的 openssl 的链接:

xcrun otool -L /usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_ssl.so

返回

./Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_ssl.so:

/usr/local/opt/openssl/lib/libssl.1.0.0.dylib(兼容版本1.0.0,当前版本1.0.0)

/usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib(兼容版本1.0.0,当前版本1.0.0)

/usr/lib/libSystem.B.dylib(兼容版本 1.0.0,当前版本 1225.1.1)

如果有人运行brew info openssl它,它会在以下说明CAVEATS

已使用系统钥匙串中的证书引导 CA 文件。要添加其他证书,请将 .pem 文件放在 /usr/local/etc/openssl/certs

但显然出于某种原因,python 没有使用自制软件的 openssl 算法来查找证书。

因此,我仍然不知道为什么 Python 标准库不验证文档中指定的 OpenSSL 目录中的证书以及钥匙串(两种格式.pem.p12具有“始终信任” Secure Sockets Layer (SSL))。

0 投票
0 回答
41 浏览

google-app-engine - 为应用引擎测试创建负载

我正在实现一个工具来为我们基于应用引擎的应用程序生成数据和加载。要求是将数据发布到端点。

我根据谷歌负载测试文章中提出的解决方案实现了初始 python 版本,我目前正在计算引擎虚拟机上运行脚本。在这一点上,当发布到一个空端点时,我已经能够使用 50 个线程每秒获得约 1800 个请求。似乎增加超过 50 个线程并不会增加请求/秒速率。

目前,为了每秒创建更多请求,我正在创建更多计算引擎实例并从多个虚拟机同时运行脚本。

我的问题是有没有更好的方法。实现这一目标的推荐或最佳方法是什么?

0 投票
1 回答
310 浏览

google-app-engine - Appengine 用户 API:重定向到 create_login_url:“NoneType”对象没有属性昵称

我对 App Engine 很陌生。我想使用 google.appengine.api.users 模块提供的简单用户 api 创建用户登录

但似乎没有重定向到登录 url。它显示错误“NoneType”对象没有属性昵称

我的代码有什么问题?如果我删除 else 子句下的 user.nickname() 调用,它工作正常......

0 投票
1 回答
62 浏览

javascript - 如何在 Google App Engine 上存储 HTML 5 地理位置数据?

我正在开发一个网络应用程序,用户可以在其中发布帖子,并且只能查看附近其他人的帖子。我设想它的工作方式是:

向用户请求地理位置数据 --> 将用户的地理位置数据存储在服务器上的文件中 --> 检查文件是否存储的任何其他坐标在用户的纬度/经度的特定范围内 --> 仅显示范围内的帖子

我将如何存储用户的纬度和经度数据?GAE 站点的后端使用 Python,如果这很重要的话。

0 投票
1 回答
410 浏览

javascript - 使用 ui 路由器导航到非默认状态

几天来,我一直试图断断续续地解决这个问题,我在互联网上读到的所有内容都表明它应该可以正常工作。只要我在应用程序中,我的应用程序路由就可以正常工作,但是当我尝试复制和粘贴 URL 时,它会丢失其状态并重定向到主页。

* 编辑 我开始认为这是因为 app.yaml 正在处理“无论如何都提供 index.html”,似乎无论 app.yaml 做什么都会剥离信息,这就是为什么 $state 的 url 为“” 编辑 *

我将我的服务器配置为返回 index.html,无论 url 是什么,因此它使用我粘贴在浏览器栏中的 url 进入路由逻辑。当我在注入 $state 和 $stateParams 的运行块中放置断点时,它显示当前 url 是“”,当它使用我的路由到达配置块时,它会转到 .otherwise('/') 并重定向我到应用程序的开头。

这是我的 app.yaml

这是我的 main.py,它只是谷歌给你的默认值

因此,当我访问 localhost:8000 时,我就可以正常访问主页。我单击一个链接转到其他链接,最终到达 localhost:8000/a 或 /b 等。如果我将该链接复制并粘贴到另一个选项卡中,我最终到达 localhost:8000。我在 run 和 config 块中设置了断点,并且 url 到达那里时还没有改变,所以我 90% 确定它不是服务器问题,但我不知道它可能是什么。在我去 /a 之前我确实遇到过这个问题,它会返回一个错误,无法获取 /a。所以我修复了这个问题,服务索引一直在变化,这就是为什么我相当有信心我正确地设置了服务器。

据我从我所有的研究中可以看出,这应该只是在没有任何配置的情况下在角度方面工作。就像我说的,我可以很好地在我的应用程序中导航,所以看起来我的状态设置正确。

只有我能找到类似问题的 SO 问题似乎并不适用,除非我遗漏了什么。1 是关于我修复的服务索引问题,另一个是他缺少一个我认为不是的“/”。

如何在不先导航到 index.html 的情况下直接进入带有 ui-router 的状态

无法使用 URL 导航到 ui-router 状态