spe*_*ane 8 google-app-engine oauth-2.0 google-compute-engine
我有一个运行我网站大部分内容的Google App Engine网络应用.但是,对于某些功能,我需要一台linux机器.我希望我的Google App Engine应用能够在某些事件中自动启动Google Compute Instance.
我了解您可以使用Compute Engine REST API添加Google Compute实例.但是,要访问Google Compute REST API,您需要使用OAuth2身份验证过程获取访问令牌.
如何以编程方式从Google App Engine中获取访问令牌?
似乎所有身份验证方法都需要显示一个窗口,因此您可以输入用户名和密码,这在Google App Engine中是不切实际的.
您应该能够使用与您的项目关联的服务帐户来向 Compute Engine API 进行身份验证并启动虚拟机。
有关服务帐户的文档表明以下 python 代码应获取服务帐户令牌。
import httplib2
import discovery
from oauth2client.appengine import AppAssertionCredentials
...
credentials = AppAssertionCredentials(
scope='https://www.googleapis.com/auth/compute')
auth_http = credentials.authorize(httplib2.Http())
compute_service = discovery.build('compute', 'v1beta15', http=auth_http)
Run Code Online (Sandbox Code Playgroud)
我原以为今年的 Google I/O 演示将可用,他们在其中构建了一个视频共享网站,但我在 GitHub 上还没有看到它。有许多使用 AppEngine 来控制 GCE 的演示,但大多数似乎都使用用户的项目和凭据,而不是应用程序自己的凭据。
显然,您可能不想在直接用户输入的情况下启动虚拟机,除非您有非常大的预算或某种形式的速率限制,但是当您“时时启动虚拟机”非常有帮助。我们有很多计算要做。(转码等)
| 归档时间: |
|
| 查看次数: |
2184 次 |
| 最近记录: |