Какой-то WSGI (https://cloud.google.com/appengine/docs/python/tools/webapp/running) необходим для GAE? Это похоже на конфигурацию CGI от HTTPD? Т.е., в
app.yaml
У меня должен бытьscript.app
и ссылкаapp
на объект wsgi/webapp?GAE Запуск сценария Python и разрешения GCEПытается использовать
AppAssertionCredentials
для аутентификации с GAE до GCE. Я сделал еще один сценарий, что этот фрагмент работал в:
credentials = AppAssertionCredentials( scope='https://www.googleapis.com/auth/compute') auth_http = credentials.authorize(httplib2.Http()) compute = discovery.build('compute', 'v1', http=auth_http)
То, что я пытаюсь сделать, теперь создать GCE снимки с GAE, используя REST API. Я не понимаю, как ссылаться на объект compute
для моего POST
, чтобы получить авторизацию на работу (теперь получение Unauthorized).
Это мой сценарий (слишком много import
s из-за тестирование):
import requests
import urllib2
import logging
import sys
import argparse
import httplib2
from oauth2client.client import flow_from_clientsecrets
from oauth2client.file import Storage
from oauth2client import tools
from oauth2client.tools import run_flow
from oauth2client.appengine import AppAssertionCredentials
from google.appengine.api import memcache
import datetime
import httplib2
import json
import logging
from pprint import pformat
from apiclient import discovery
from google.appengine.api import memcache
from oauth2client.appengine import AppAssertionCredentials
import cgi
from google.appengine.api import users
import urllib
from google.appengine.api import users
from google.appengine.ext import ndb
import time
PROJECT = "testprojgce"
ZONE = "europe-west1-b"
### OAuth2
credentials = AppAssertionCredentials(
scope='https://www.googleapis.com/auth/compute')
auth_http = credentials.authorize(httplib2.Http())
compute = discovery.build('compute', 'v1', http=auth_http)
# Create snapshot
createsnapurl= "https://www.googleapis.com/compute/v1/projects/"+PROJECT+"/zones/"+ZONE+"/disks/testdisk1/createSnapshot"
req=requests.post(createsnapurl)
Пожалуйста, придерживайтесь «одного вопроса на вопрос» - это ОЧЕНЬ фундаментальный этикет StackOverflow. Сосредоточение внимания только на вопросе 1, да: 2.7 Время выполнения Python веб-сервера GAE подключается к вашему коду через ваши приложения WSGI (приложение.yaml может отправить один или несколько из них), как и любой другой веб-сервер - любая любая инфраструктура Python по вашему выбору легко делает это (я рекомендую для вашего случая использования легкую фрейму, такую как сокол, колба, бутылка, или webapp2, а не богатый и тяжелый полноценный, такой как django или web2py, но, конечно же, это ВАШ выбор). –
У вас возникли сомнения, следует ли открывать с помощью «Это вопрос из 2 частей» или что-то подобное. Извините за нарушение правил SO. – PyGAE