[google-appengine] Re: Migrating a project from a personal account to an organizational account

2018-09-20 Thread 'George (Cloud Platform Support)' via Google App Engine
Hello Aaron, 

Do you develop for the App Engine, or the G Suite? In case you refer to G 
Suite projects, you may consider having a look at the "Add an 
organizational unit" documentation page 
. The same page provides 
link to G Suite support. 

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/7b07c405-88b6-485e-addb-f0e609bc18f3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: Unable to connect to MQTT database on a VM instance from AppEngine.

2018-09-20 Thread 'George (Cloud Platform Support)' via Google App Engine
Hello Rajkumar, 

Is your VM instance running in Google Cloud Platform? Do you run your VM 
instance in your own local server? What DBMS have you implemented? Do you 
refer to a Cloud SQL instance? How do you connect from your app in App 
Engine to your VM? A little more detail on your setup should definitely 
help. 

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/f04134bd-554e-4eff-a0ce-bce930831531%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [google-appengine] Re: 2nd Gen GAE Python 3.7 memory usage

2018-09-20 Thread 'Phillip Pearson' via Google App Engine
Hi Adam,

How are you measuring memory usage locally?  If you're looking at the
resident size (RSS in ps, RES in top), that's only a subset of the actual
memory used by your application, so you should expect the memory usage
reported in the App Engine console to be higher than what you see locally
-- it includes kernel memory specific to your app, mapped file data, and
some other bits and pieces.

As for the entrypoint line, we haven't advertised this usage too widely
because we hope the defaults will work for most people -- and just in case
we come up with a better way to do it :)

Cheers,
Phil

On Thu, Sep 20, 2018 at 2:12 PM Adam Lugowski  wrote:

> Thanks for the suggestions, Phillip.
>
> Yes the memory is as expected. This was never in doubt, the out-of-memory
> message says both usage and the quota. The quota matches GAE_MEMORY_MB. The
> problem is why the usage is so high, not that the quota isn't changing.
>
> Thank you for the command to use. Google's docs didn't make it clear that
> this is how you control parallelism. After adding gunicorn to
> requirements.txt, the following now helps:
>
> entrypoint: gunicorn main:app --threads 4 --workers 1 -c
> /config/gunicorn.py
>
> It only solves half the problem. This now no longer crashes an F4. It does
> still crash an F2, with 270 MB usage. Locally it's still only 115MB.
>
>
> On Monday, September 17, 2018 at 1:25:55 PM UTC-7, Phillip Pearson wrote:
>>
>> Hi Adam,
>>
>> Here's a few ideas for diagnosis:
>>
>> 1. Can you try printing or logging repr(os.environ) and checking for the
>> GAE_MEMORY_MB environment variable?  I just tried deploying a test app with
>> instance_class: F4 and service: xyz, and print(repr(os.environ)) gives me
>> something like this:
>>
>>   environ({'GAE_MEMORY_MB': '512', 'GAE_INSTANCE': ...etc etc...})
>>
>> The python37 runtime *should* start one worker if GAE_MEMORY_MB <= 128,
>> two if <= 256, four if <= 512, otherwise eight.
>>
>> If you see 'GAE_MEMORY_MB': '512' in there but anything other than four
>> workers starting up, I'm extremely interested in figuring out why :)
>> Likewise if you see anything other than 512 for an F4 instance.
>>
>> 2. Check that you're looking at the logs for the correct service -- make
>> sure you see "GAE Application, xyz" and not "GAE Application, Default
>> Service" or just "GAE Application" (which combines logs from all services)
>> in the logs viewer.
>>
>> 3. Once you've done those two, if nothing sticks out, you can manually
>> configure the worker count by adding a line like this to app.yaml:
>>
>>   entrypoint: gunicorn main:app --workers 2 -c /config/gunicorn.py
>>
>> This will start up two workers.  You can also configure the number of
>> threads per worker:
>>
>>   entrypoint: gunicorn main:app --threads 8 --workers 2 -c
>> /config/gunicorn.py
>>
>> (The default if you just using 'gunicorn main:app -c /config/gunicorn.py'
>> is four workers with four threads each.)
>>
>> Cheers,
>> Phil
>>
>> On Monday, September 17, 2018 at 10:30:06 AM UTC-7, Adam Lugowski wrote:
>>>
>>> Hi Rahul,
>>>
>>> I'm not manually configuring workers. Happy to learn of how to do that.
>>> My app.yaml is simple:
>>>
>>> runtime: python37
>>> service : xyz
>>>
>>> inbound_services:
>>> - warmup
>>>
>>> instance_class: F4
>>>
>>> handlers:
>>> 
>>>
>>> On Sunday, September 16, 2018 at 6:59:38 AM UTC-7, rah...@google.com
>>> wrote:

 Hello Adam,
   Could you paste your app.yaml? Are you explicitly configuring the
 number of workers?
 Thanks,
 ~Rahul.


 On Friday, September 14, 2018 at 3:47:41 PM UTC-7, Adam Lugowski wrote:
>
> The only theory I have is informed by these log messages on startup:
>
> A  [2018-09-14 19:28:38 +] [1] [INFO] Starting gunicorn 19.9.0
> A  [2018-09-14 19:28:38 +] [1] [INFO] Listening at:
> http://0.0.0.0:8080 (1)
> A  [2018-09-14 19:28:38 +] [1] [INFO] Using worker: threads
> A  [2018-09-14 19:28:38 +] [8] [INFO] Booting worker with pid: 8
> A  [2018-09-14 19:28:38 +] [9] [INFO] Booting worker with pid: 9
> A  [2018-09-14 19:28:38 +] [10] [INFO] Booting worker with pid: 10
> A  [2018-09-14 19:28:38 +] [11] [INFO] Booting worker with pid: 11
> A  [2018-09-14 19:28:38 +] [12] [INFO] Booting worker with pid: 12
> A  [2018-09-14 19:28:38 +] [13] [INFO] Booting worker with pid: 13
> A  [2018-09-14 19:28:39 +] [14] [INFO] Booting worker with pid: 14
> A  [2018-09-14 19:28:39 +] [15] [INFO] Booting worker with pid: 15
>
>
> It looks like multiple workers are started, so maybe the fixed memory
> overhead is just duplicated by each worker.
> This is also supported by the fact that some of my requests load
> matplotlib. Locally this makes a slow first request then fast on 
> subsequent
> ones. On GAE F4 the first few are slow, then it stays fast, as if multiple
> processes have to be warmed up.
> If this is 

[google-appengine] Re: What is the best way to clean datastore expired sessions?

2018-09-20 Thread 'Yasser Karout (Cloud Platform Support)' via Google App Engine
Hello,

I found this java servlet 

 that 
could potentially help you clear the  "_ah_SESSION" tokens. It is discussed 
on this Issue Tracker link . You 
can also find more information about why the property is needed in this 
Issue Tracker link  (see comments 
#8 and #9).

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/a684c4d6-d502-4b88-9384-85efdaddd944%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: 2nd Gen GAE Python 3.7 memory usage

2018-09-20 Thread Adam Lugowski
Thanks for the suggestions, Phillip.

Yes the memory is as expected. This was never in doubt, the out-of-memory 
message says both usage and the quota. The quota matches GAE_MEMORY_MB. The 
problem is why the usage is so high, not that the quota isn't changing.

Thank you for the command to use. Google's docs didn't make it clear that 
this is how you control parallelism. After adding gunicorn to 
requirements.txt, the following now helps:

entrypoint: gunicorn main:app --threads 4 --workers 1 -c /config/gunicorn.py

It only solves half the problem. This now no longer crashes an F4. It does 
still crash an F2, with 270 MB usage. Locally it's still only 115MB.


On Monday, September 17, 2018 at 1:25:55 PM UTC-7, Phillip Pearson wrote:
>
> Hi Adam,
>
> Here's a few ideas for diagnosis:
>
> 1. Can you try printing or logging repr(os.environ) and checking for the 
> GAE_MEMORY_MB environment variable?  I just tried deploying a test app with 
> instance_class: F4 and service: xyz, and print(repr(os.environ)) gives me 
> something like this:
>
>   environ({'GAE_MEMORY_MB': '512', 'GAE_INSTANCE': ...etc etc...})
>
> The python37 runtime *should* start one worker if GAE_MEMORY_MB <= 128, 
> two if <= 256, four if <= 512, otherwise eight.
>
> If you see 'GAE_MEMORY_MB': '512' in there but anything other than four 
> workers starting up, I'm extremely interested in figuring out why :)  
> Likewise if you see anything other than 512 for an F4 instance.
>
> 2. Check that you're looking at the logs for the correct service -- make 
> sure you see "GAE Application, xyz" and not "GAE Application, Default 
> Service" or just "GAE Application" (which combines logs from all services) 
> in the logs viewer.
>
> 3. Once you've done those two, if nothing sticks out, you can manually 
> configure the worker count by adding a line like this to app.yaml:
>
>   entrypoint: gunicorn main:app --workers 2 -c /config/gunicorn.py
>
> This will start up two workers.  You can also configure the number of 
> threads per worker:
>
>   entrypoint: gunicorn main:app --threads 8 --workers 2 -c 
> /config/gunicorn.py
>
> (The default if you just using 'gunicorn main:app -c /config/gunicorn.py' 
> is four workers with four threads each.)
>
> Cheers,
> Phil
>
> On Monday, September 17, 2018 at 10:30:06 AM UTC-7, Adam Lugowski wrote:
>>
>> Hi Rahul,
>>
>> I'm not manually configuring workers. Happy to learn of how to do that. 
>> My app.yaml is simple:
>>
>> runtime: python37
>> service : xyz
>>
>> inbound_services:
>> - warmup
>>
>> instance_class: F4
>>
>> handlers:
>> 
>>
>> On Sunday, September 16, 2018 at 6:59:38 AM UTC-7, rah...@google.com 
>> wrote:
>>>
>>> Hello Adam,
>>>   Could you paste your app.yaml? Are you explicitly configuring the 
>>> number of workers?
>>> Thanks,
>>> ~Rahul.
>>>
>>>
>>> On Friday, September 14, 2018 at 3:47:41 PM UTC-7, Adam Lugowski wrote:

 The only theory I have is informed by these log messages on startup:

 A  [2018-09-14 19:28:38 +] [1] [INFO] Starting gunicorn 19.9.0 
 A  [2018-09-14 19:28:38 +] [1] [INFO] Listening at: 
 http://0.0.0.0:8080 (1) 
 A  [2018-09-14 19:28:38 +] [1] [INFO] Using worker: threads 
 A  [2018-09-14 19:28:38 +] [8] [INFO] Booting worker with pid: 8 
 A  [2018-09-14 19:28:38 +] [9] [INFO] Booting worker with pid: 9 
 A  [2018-09-14 19:28:38 +] [10] [INFO] Booting worker with pid: 10 
 A  [2018-09-14 19:28:38 +] [11] [INFO] Booting worker with pid: 11 
 A  [2018-09-14 19:28:38 +] [12] [INFO] Booting worker with pid: 12 
 A  [2018-09-14 19:28:38 +] [13] [INFO] Booting worker with pid: 13 
 A  [2018-09-14 19:28:39 +] [14] [INFO] Booting worker with pid: 14 
 A  [2018-09-14 19:28:39 +] [15] [INFO] Booting worker with pid: 15 


 It looks like multiple workers are started, so maybe the fixed memory 
 overhead is just duplicated by each worker.
 This is also supported by the fact that some of my requests load 
 matplotlib. Locally this makes a slow first request then fast on 
 subsequent 
 ones. On GAE F4 the first few are slow, then it stays fast, as if multiple 
 processes have to be warmed up.
 If this is true, then going to a larger instance is poor advice; 
 doubling memory size also doubles CPU count which doubles fixed overhead 
 and we're back at square one.

>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/1c80dd99-9b67-41c2-aec2-f1c3492b6a7f%40googlegroups.com.
For more options, visit 

[google-appengine] Re: Does Cloud Endpoints work with 2nd Gen python 3.7 standard?

2018-09-20 Thread Rizky Ananda
Pada Kamis, 20 September 2018 06.25.54 UTC+7, Parth Mishra  menulis:
> I tried to set it up using an open api deployment for endpoints and it 
> deployed succsesfully but it's not bothering to authenticate requests. Is it 
> supported?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/68134adf-e021-47bc-a52d-52995420eb3c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Migrating a project from a personal account to an organizational account

2018-09-20 Thread aaron
I started two projects on my own personal email account, and now want to 
migrate them to an organizational account.  How can I do this?  I've got 
the organizational account setup.

I apologize if this is the wrong place to post.  Please let me know if 
there is a better one.

Thanks,

Aaron
JusticeMap --> http://www.justicemap.org

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/b7043eb5-3183-411e-850e-70a096b56d3c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: Every once in a while GAE responds with 502 error

2018-09-20 Thread Elena DevAccount
Hi and thanks for your reply!
I cannot find the Memory usage in the dropdown menu though. Could you 
please point me to some link or instructions? 

Thanks!

On Tuesday, September 11, 2018 at 3:11:19 PM UTC-7, Katayoon (Cloud 
Platform Support) wrote:
>
> I should note that we have received some reports from asia-south1 and 
> asia-northeast1 regions as reported via Issue#113859892 
>  which seems to be resolved. 
> However, in your case (Elena’s), it seems that your application ran out 
> of memory 
> .
>  
> You can check it via your App Engine Dashboard by choosing “Memory Usage” 
> through the dropdown menu.
>
> If the issue still persists, I recommend to report it via the Issue 
> Tracker  so that we 
> would be able to dig into the issue.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/292f1a77-c45e-421a-88da-e977dd8a845e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Unable to connect to MQTT database on a VM instance from AppEngine.

2018-09-20 Thread Rajkumar Godi
Hi All,

I am having issues connecting by MQTT database on VM instance from an 
application installed on App Engine. I am getting below messages. Please 
let me know if you have any idea on this. Thank you!.

A  error: Mqtt reconnect 
 
A  info: MQTT Connected -- MQTT_CLIENT_32 
 
A  error: Mqtt offline 
 
A  Mqtt offline 
 
A  error: Mqtt offline 
 
A  Mqtt offline 
 
A  error: Mqtt reconnect 
 
A  info: MQTT Connected -- MQTT_CLIENT_32 
 
A  error: Mqtt reconnect 
 
A  info: MQTT Connected -- MQTT_CLIENT_32 
 
A  180919/102607.004, [ops] memory: 212Mb, uptime (seconds): 56381.156, load: 
[0.0185546875,0.037109375,0. 001953125]
 
A  Mqtt offline 
 
A  error: Mqtt offline

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/4878ee21-df41-4d94-a551-7ca6be932bd4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: Help with Security in Cloud Functions

2018-09-20 Thread 'George (Cloud Platform Support)' via Google App Engine
Hello Miguel, 

Your concern is legitimate, and you should be able to restrict access to 
your deployed functions. Work is being done and a solution under way. You 
may check the "Provide Authentication / Access Control" feature request 
 in the Public Issue Tracker. 
Progress towards eventual implementation my be followed in that issue. You 
are welcome to formulate related concerns, or provide more detail on your 
requirements. Posting this information in the mentioned feature request 
 is more effective, and your 
concerns would reach Engineering directly. 

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/b5e28b4c-8f48-4f2d-9ba5-e20eca563de7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Help with Security in Cloud Functions

2018-09-20 Thread Miguel Pagan Murphy
Hi,

I'm a newbie to cloud functions. I'm using them for a web app, and was 
surprised to see that when deployed they are completely public.

Is there no way to secure them without doing it in the function in itself? 
Maybe by means of a service account or something similar. If you can't, 
what would be the correct way to protect a REST cloud function endpoint? 

The most relevant article i've found is this one, and it doesn't give me 
very much hope:

https://stackoverflow.com/questions/46358013/secure-google-cloud-functions-http-trigger-with-auth

Thanks,

Miguel Pagán Murphy

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/b71efbcd-3a4f-499a-95b9-e2845b762d29%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: What is the best way to clean datastore expired sessions?

2018-09-20 Thread Miguel Pagan Murphy
Hi George,

Basically it's because of the "_ah_SESSION" token. This token is created 
whenever an app engine standard application stores a user's session and 
contains all the information about the session.

Something that was not easy to find is that when it's created it is then 
stored both on memcache and on datastore, and never cleaned from datastore, 
even if its expiration (_expires) period passes. 

We have ended creating a cloud function to delete from datastore all 
expired entries with a cron, but that has reached a whole new level of 
issues with security (which I will leave for another post).

One last thing, is, as feedback, it´s a bit "sneaky" to store data from the 
users in datastore without providing a free way to clean it afterwards. I 
mean, just to clean up the expired entries we are gonna have to pay for:
- Reading from the datastore.
- Deleting from the datastore.
- Cloud function periodically activated.

For something that is neither our wish nor our desire to have, ;).

On the other hand, if we didn't pay for it, I already have more than 500 MB 
of expired session entries on datastore, meaning that I'd still have to pay 
to store something I have no wish or use to store, without any notification 
of it.

The reference by which i found out was a few articles similar to 
this: http://www.zoftino.com/google-app-engine-session-data-cleanup. 
Once you start to look in depth, it's all over the place, but if your not 
aware, it's hard to find it referenced in the docs.

Anyway, thanks for your assistance.

Miguel Pagán Murphy


On Wednesday, September 19, 2018 at 2:35:11 AM UTC+2, George (Cloud 
Platform Support) wrote:
>
> Hello Miguel, 
>
> To clean data in both Memcache and Datastore, you should use the 
> corresponding key. In case of the Memcache, to remove a value from the 
> cache (to evict it immediately), call the remove() method with the key as 
> its argument. To remove every value from the cache for the application, 
> call the clear() method. Related detail may be read on the "Using Memcache" 
> page 
> .
>  
> In Memcache, you may write your data limiting its persistence: the app can 
> provide an expiration time when a value is stored, as either a number of 
> seconds relative to when the value is added, or as an absolute Unix epoch 
> time in the future. This is documented on the "Memcache Overview" page 
> 
> . 
>
> Similarly, in case of Datastore, when an entity is no longer needed, you 
> can remove it from Cloud Datastore with the key's delete() method, a 
> statement similar to sandy.key.delete(). The "Creating, Retrieving, 
> Updating, and Deleting Entities" page 
> 
>  
> might offer more insight. In both cases, your code should keep track of the 
> keys, to be able to perform the delete operation. You may use App Engine 
> Cron Service to perform these operations at appropriate times, in 
> accordance with your app's needs.  
>
> How did you ascertain that Memcache data was persisted to Datastore? When 
> did you first notice it? 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/126fdb77-4812-40e7-805a-6872e9b86f89%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Re: Does Cloud Endpoints work with 2nd Gen python 3.7 standard?

2018-09-20 Thread 'Amit (Google Cloud Support)' via Google App Engine
Hi Parth, Thank you for your update. 

As you mentioned,you already received an update from this [1] thread. In 
order to avoid duplicating efforts we always recommend to follow one 
thread.  

[1] https://groups.google.com/forum/#!topic/google-cloud-endpoints/JVurbIaTbak 
 

On Wednesday, September 19, 2018 at 7:56:47 PM UTC-4, Parth Mishra wrote:
>
> Update: recieved word from the endpoints google group that this is in 
> fact, not supported at the time of writing. It is something that is being 
> looked at, however, but with no timetable for a fix.
>
> I'll leave this up in case anyone else is curious in future. 
>
> On Wednesday, September 19, 2018 at 7:25:54 PM UTC-4, Parth Mishra wrote:
>>
>> I tried to set it up using an open api deployment for endpoints and it 
>> deployed succsesfully but it's not bothering to authenticate requests. Is 
>> it supported?
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/206a59f9-bc8a-43b1-9cc2-c8445a640a8e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.