2009-05-01 6 views

risposta

12

Ogni app ha il proprio datastore e memcache (condivisa tra tutte le versioni di tale app). Al momento non è possibile condividere i datastore tra le applicazioni (a meno che tu non fornisca qualche servizio web per questo), ma sarebbe una buona funzionalità, quindi forse dovresti inviare una richiesta di funzionalità a vote for it.

Per quanto riguarda i domini, è possibile associare la propria app con domains managed by Google Apps. Più domini per la stessa applicazione non dovrebbe essere un problema (eccetto per i certificati SSL).

+0

Ma non sembra possibile utilizzare versioni o moduli diversi per quei domini multipli. – hiroshi

3

Ogni versione di un'applicazione è supportata dallo stesso archivio dati. Se si desidera limitare l'accesso per le singole richieste, è necessario aggiungere un campo al modello per applicare tale restrizione. Ci sono ami di basso livello nell'API datastore per questo genere di cose, se vuoi arrivare a tanto.

E sì, è possibile aggiungere una singola app App Engine a più domini, anche in più account Apps.

20

App Engine di recente aggiungere il supporto per una funzione chiamata moduli (Documenti: go, python, java)

App Engine Modules (o semplicemente di seguito "moduli") è una funzione che consente agli sviluppatori di fattore di grandi dimensioni applicazioni in componenti logici che possono condividere servizi di stato e comunicare in modo sicuro. Un'applicazione che gestisce le richieste dei clienti potrebbe includere moduli separati per gestire altri compiti:

  • richieste API da dispositivi mobili
  • interno, le richieste di amministrazione simile
  • elaborazione backend, come oleodotti di fatturazione e l'analisi dei dati

Quando si crea un nuovo modulo, App Engine crea un URL che corrisponde al nome del modulo. Se hai solo un modulo, il nome sarà default. per esempio.

  • http: // predefinita .myapp.appspot.com
  • http: // cellulare-frontend .myapp.appspot.com
  • http: // mio modulo. myapp.appspot.com

Utilizzando Domain masking, si potrebbe poi diretto da:

  • www.myapp.com => http: // predefinita .myapp.appspot.com
  • www.myapp-mobile.com => http: // cellulare-frontend .myapp.appspot.com
  • www.example.com => http: // my-module .myapp.appspot.com
+0

Con questo trucco perderai il miglior vantaggio del sistema di controllo delle versioni. Non sarai in grado di tornare indietro (torna a una versione più facile) quando qualcosa va storto dopo una nuova distribuzione, perché l'opzione "Crea default" non farà nulla a causa del mascheramento del dominio. In questo caso, il dominio diventa ancora peggiore a causa dell'alto ritardo di propagazione. Le versioni di Appengine non sono per questo. Questo è un trucco, io scoraggio di usare questo. – Lepi

+1

@Lepi, quando si utilizzano i moduli verrà visualizzata la versione impostata come predefinita quando si accede all'URL di base. Per esempio. la versione '1' del modulo' default' sarà visualizzata nell'URL '1.default.myapp.com', ma anche in' default.myapp.com'. Pertanto, la modifica della rotta "predefinita" non richiede una modifica del record DNS. Spero che aiuti. –

3

La soluzione di Kyle funzionava, ma App Engine non è mai stato progettato per essere utilizzato in questo modo. Quindi, se architetti le tue app per fare affidamento su questo tipo di configurazione e Google si blocca per qualsiasi motivo, allora saresti fregato.

2

si può avere multitenancy utilizzando i Namespace Java API

+0

Non pensare che questo sia collegato. OP vuole che più applicazioni condividano un datastore, invece della stessa applicazione con più datastore (in questo caso, lo spazio dei nomi è utile) –