2012-03-20 10 views
6

La mia configurazione di backends.yamlGoogle App Engine e backend: come configurarlo sul server di sviluppo?

backends: 
- name: mybackend 
    class: B1 
    instances: 1 
    options: dynamic 

e app.yaml

handlers: 
- url: http://mybackend.myapp.appspot.com 
    script: mybackend.py 
    login: admin 

L'esecuzione localy sul server di sviluppo ottengo questo errore:

Unable to assign value 'http://mybackend.myapp.appspot.com' to attribute 'url': Value 'http://mybackend.myapp.appspot.com' for url does not match expression '^(?!\^)/|.|((.).*(?!\$).$'

Come posso testare backend sul server di sviluppo?

risposta

6

Credo che l'url dovrebbe essere l'url relativo dal tuo sito. Lo script dovrebbe essere la funzione python che viene eseguita, non il nome file. Quindi la tua app.yaml dovrebbe essere.

handlers: 
- url: /backend 
    script: mybackend.myfunction 
    login: admin 

Le tue istanze di backend e frontend condividono gli stessi gestori, non c'è modo di distinguerli.

+0

Ma come il motore riconosce che l'url '/ backend' dovrebbe essere eseguito come istanza di backend? –

+3

Se si effettua una richiesta a http://mybackend.myapp.appspot.com/backend, verrà eseguita sull'istanza di backend. Se fai una richiesta a http://myapp.appspot.com/backend, verrà eseguita su un'istanza normale e scadrà il timeout. Ecco perché vuoi impostare login: admin (che hai fatto correttamente). In teoria, l'amministratore eseguirà una richiesta di non backend solo su http://myapp.appspot.com/backend se sanno cosa stanno facendo. Nel tuo gestore/back-end, puoi rilevare se sei effettivamente su un back-end e agire in modo appropriato. Vedi l'API back-end http://code.google.com/appengine/docs/python/backends/functions.html – dragonx

+0

Thx, ora è chiaro. Ho letto correttamente la documentazione prima di pubblicare la domanda qui, tuttavia anche ora devo dire che è scritta in modo non intuitivo (almeno per me). –

Problemi correlati