GAE-管理Python应用程序的常用命令

本文介绍了AppEngine Python SDK中的appcfg.py命令的功能,包括应用程序上传、更新数据存储区索引、删除不使用的索引、管理计划任务、下载日志数据以及上传数据等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

App Engine Python SDK 含有用于和 App Engine 交互的名为 appcfg.py 的命令。可使用该命令将您的应用程序的新版本代码、配置和静态文件上传到 App Engine。还可使用该命令来管理数据存储区索引以及下载日志数据。
上传应用程序

要上传应用程序文件,请使用 update 操作并输入应用程序根目录的名称来运行 appcfg.py 命令。根目录应包含应用程序的 app.yaml 文件。


appcfg.py update myapp/


appcfg.py 将从 app.yaml 文件获得应用程序 ID,并提示您输入 Google 帐户的电子邮件地址和密码。使用您的帐户成功登录后,appcfg.py 会存储一个“cookie”,这样以后登录时就无需再提示输入密码。

您可以使用 --email 选项在命令行指定电子邮件地址。您不能将密码指定为命令行选项。


appcfg.py --email=Albert.Johnson@example.com update myapp/


更新索引

当您使用 appcfg.py update 上传应用程序时,更新将包括应用程序的 index.yaml 文件。如果 index.yaml 文件定义了 App Engine 上还不存在的索引,则 App Engine 将创建此新索引。创建索引可能需要一些时间,时间长短取决于数据存储区中已存在的需要编入新索引的数据量。如果应用程序执行需要索引的查询但该索引还未构建完成,则该查询将引发异常。

要防止出现该问题,您必须确保在索引构建完成之前,要求新索引的应用程序的新版本不是应用程序的活动版本。其中一种做法是,每当您在 index.yaml 中添加或更改索引时,即在 app.yaml 中为应用程序指定一个新版本号。应用程序将以新版本上传,不会自动变成默认的版本。当您的索引已完成构建时,可使用管理控制台的“版本”部分将默认版本更改为新版本。

确保新索引在新的应用程序启用之前已构建的另一种方法是,在上传应用程序之前单独上传 index.yaml 配置。要仅上传应用程序的索引配置,请使用以下命令:

appcfg.py update_indexes myapp/


可从管理控制台的“索引”部分检查应用程序索引的状态。
删除不使用的索引

当您从 index.yaml 更改或删除索引时,不会自动从 App Engine 删除原索引。这使您可以在构建新索引时使较旧版本的应用程序保持运行,或当新版本发现问题时立即还原到较旧版本。

如果您确定旧索引不再需要,则可使用以下命令将其从 App Engine 删除:

appcfg.py vacuum_indexes myapp/


该命令将删除 index.yaml 的最近上传的版本中未提及的应用程序的所有索引。
管理计划任务

App Engine 支持计划任务(又称 cron job)。可在名为 cron.yaml 的文件中指定这些任务,然后使用 appcfg.py update_cron 命令将其上传:

appcfg.py update_cron myapp/


在文件存在的情况下,appcfg update 也将上传 cron job 说明。有关 cron job 的详细信息,请参阅 Cron Job 文档。
下载日志

App Engine 使用 Python 标准库中的 logging 模块维护您的应用程序发出的消息以及其他打印到标准错误流中的消息的日志。App Engine 还将在日志中记录每个请求。您可从管理控制台的“日志”部分浏览应用程序的日志。

如果您希望对应用程序的日志执行详细分析,可将日志数据下载到您的计算机上的文件中。要将日志下载到名为 mylogs.txt 的文件,请使用以下命令:

appcfg.py request_logs myapp/ mylogs.txt


默认情况下,该命令将下载从当前日历日(自太平洋时间午夜零点起)开始的 INFO 或更高日志级别(省略 DEBUG 级别的消息)的日志消息。该命令还将覆盖本地的日志文件。可使用命令行选项调整天数、最小日志级别以及是覆盖本地日志文件还是附加到本地日志文件。有关这些选项的详细信息,请参见下文。
上传数据

可使用 appcfg.py 通过 upload_data 操作将大量数据上传到您的应用程序的数据存储区。该操作需要在您的 Python 应用程序中设置特定的请求处理程序。有关如何使用该功能的完整操作说明,请参阅上传数据。
使用 HTTP 代理

如果您在 HTTP 代理下运行 appcfg.py,则必须告知 appcfg.py 该代理的名称。要为 appcfg.py 设置 HTTP 代理,请设置 http_proxy 环境变量。

使用 Windows(在命令提示符中):


set HTTP_PROXY=http://cache.mycompany.com:3128
appcfg.py update myapp


使用 Mac OS X(在终端中)或 Linux 中的命令行:


export http_proxy="http://cache.mycompany.com:3128"
appcfg.py update myapp


命令行参数

appcfg.py 命令包含一组选项、一个操作和该操作的参数。

有以下操作可选:


appcfg.py [options] update <app-directory>


为指定了应用程序根目录的应用程序上传文件。应用程序 ID 和版本是从应用程序目录中的 app.yaml 文件获取的。



appcfg.py [options] rollback <app-directory>


撤消指定应用程序完成的部分更新。如果更新中断并且命令报告由于锁定而无法更新应用程序,则可以使用此操作。


appcfg.py [options] update_indexes <app-directory>

更新 App Engine 中的数据存储区索引以包括新添加的索引。如果新版本的应用程序需要添加到 index.yaml 的额外索引定义,您可在上传新版本的应用程序之前在 App Engine 中更新索引配置。在上传新版本的应用程序之前几个小时运行该操作,可给予索引进行构建的时间并在部署应用程序时提供服务。



appcfg.py [options] vacuum_indexes <app-directory>


删除 App Engine 中不使用的数据存储区索引。如果从 index.yaml 中删除索引定义,则当上传应用程序时,该索引不会自动删除,因为它可能正被该应用程序的其他版本使用。当不再需要所有旧索引时执行此操作。



appcfg.py [options] request_logs <app-directory> <output-file>


检索 App Engine 上运行的应用程序的日志数据。output-file 是要创建、替换或附加(如果设置了 --append 标记)的文件的名称。如果 output-file 为连字符 (-),则日志数据将打印到控制台。以下选项适用于 request_logs:

--num_days=...

要检索的日志数据的天数(结束时间为国际协调时间当前日期的午夜)。0 值会检索所有可用日志。如果 --append 已指定,则默认为 0,否则默认为 1。


--severity=...

要检索的日志消息的最低日志级别。该值是一个与日志级别相对应的数字:4 表示“严重”,3 表示“错误”,2 表示“警告”,1 表示“信息”,0 表示“调试”。指定日志级别及更高级别的所有消息都会被检索。默认为 1(信息)。


--append

将抓取的数据附加到输出文件,开头为文件中尚未出现的第一个日志行。每天运行一次该命令,使文件中的 --append 结果包含所有日志数据。

默认为覆盖输出文件。如果 output-file 为 -(打印到控制台),则不适用。

appcfg.py [options] upload_data <app-directory>

从 CSV 文件将数据上传至数据存储区。有关使用该功能的完整信息,请参阅上传数据。


appcfg.py help <action>

打印有关指定操作的帮助消息,然后退出。

appcfg.py 命令接受以下适用于所有操作的选项:

--quiet

成功时不打印消息。


--verbose

打印有关命令正在执行的操作的消息。


--noisy

打印有关命令正在执行的操作的多个消息。在与 App Engine 团队协作解决上传问题时,此选项最为有用。


--email=...

应用程序管理员的 Google 帐户的电子邮件地址,适用于需要登录的操作。如果忽略了该值且以前使用该命令时未存储 cookie,则该命令会提示输入。


--passin

如果给定了该值,则该工具将接受 stdin 中的 Google 帐户密码而不是交互地提示输入密码。这使您无需在命令行中输入密码即可从脚本调用该工具。


--server=...

App Engine 服务器主机名。默认为 appengine.google.com。


--host=...

用于与远程过程调用配合使用的本地计算机的主机名。


--no_cookies

请勿将管理员登录凭证存储为 cookie;每次登录时都提示输入密码。


--force

强制删除不使用的索引。默认情况下,上传应用程序不会从服务器中删除不使用的索引,即使这些索引未显示在 index.yaml 文件中。


--max_size=...

要上传的文件的大小上限,以字节数表示。大于该大小的文件不会上传。默认为 1048576。服务器当前将最大文件大小强制为 1048576 字节,因此增加该值无任何效果。
内容概要:本文针对国内加密货币市场预测研究较少的现状,采用BP神经网络构建了CCi30指数预测模型。研究选取2018年3月1日至2019年3月26日共391天的数据作为样本,通过“试凑法”确定最优隐结点数目,建立三层BP神经网络模型对CCi30指数收盘价进行预测。论文详细介绍了数据预处理、模型构建、训练及评估过程,包括数据归一化、特征工程、模型架构设计(如输入层、隐藏层、输出层)、模型编译与训练、模型评估(如RMSE、MAE计算)以及结果可视化。研究表明,该模型在短期内能较准确地预测指数变化趋势。此外,文章还讨论了隐层节点数的优化方法及其对预测性能的影响,并提出了若干改进建议,如引入更多技术指标、优化模型架构、尝试其他时序模型等。 适合人群:对加密货币市场预测感兴趣的研究人员、投资者及具备一定编程基础的数据分析师。 使用场景及目标:①为加密货币市场投资者提供一种新的预测工具和方法;②帮助研究人员理解BP神经网络在时间序列预测中的应用;③为后续研究提供改进方向,如数据增强、模型优化、特征工程等。 其他说明:尽管该模型在短期内表现出良好的预测性能,但仍存在一定局限性,如样本量较小、未考虑外部因素影响等。因此,在实际应用中需谨慎对待模型预测结果,并结合其他分析工具共同决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值