I keep getting the following message when trying to deploy the sample application from within Eclipse. I tried to post an image of my Application settings but being a newbie it wouldn't let me.
------------ Deploying frontend ------------
com.google.appengine.tools.admin.HttpIoException: Error posting to URL: https://appengine.google.com/api/appversion/getresourcelimits?app_id=http%3A%2F%2Fgdbguesttest.appspot.com%2F&version=1&
400 Bad Request
Here is a copy and paste from the application settings:
Application Identifier Alias:
gdbguesttest.appspot.com
Between 6 and 30 characters. Provides an alternative URL to access your application through appspot.com. It can be used to enable Channel, XMPP, Email, and SSL access for your application.
http://gdbguesttest.appspot.com
Datastore Replication Options:
High Replication
Uses a highly replicated Datastore that synchronously replicates data across multiple locations simultaneously.
OK found my problem. You only should put your app ID, not the entire path.
So in my case.
gdbguesttest
NOT
http://gdbguesttest.appspot.com
Related
Very weird occurrence of this error (see below). Points of note:
Web app in question has >500 daily users, all of them uploading objects into S3 daily
Two users, have this one error when they try and upload a file
The same users, if they try a different computer, do not get this error
Web app is using the EvaporateJS library - https://github.com/TTLabs/EvaporateJS
There seems to be no pattern with regards to file size (even a tiny <10kb file will cause it)
The authentication/authorisation component of the web app is handled by the web-app. I.e. - The IAM user associated with generating the S3 upload Url is shared for all web app users, so I have ruled out a permission issue for the IAM user ID in question
Error message:
<Error>
<Code>InvalidRequest</Code>
<Message>
Key is not expected for the GET method ?uploads subresource
</Message>
<RequestId>
*****
</RequestId>
<HostId>
*****
</HostId>
</Error>
From all the points above, the only variable here seems to be the computers. Am I right? Have I overlooked something? If it is the computers, any idea what would be the issue there? An overactive firewall/something else preventing the upload network requests?
Thanks in advance for any guidance in decipher this error message (what does it even mean?!)
I like that I can use the Logs API (described here: https://cloud.google.com/appengine/docs/java/logs/) to programatically access and display app & request logs as I see fit--it's great.
Now that I'm using Managed VMs on AppEngine you can see on the Admin Console Logs Viewer that there are a ton of additional logs--including in my case a custom log which I found I could include in the viewer (decribed here: https://cloud.google.com/appengine/docs/managed-vms/custom-runtimes#logging).
My question is: Is there any way I can use the Logs API (or other pipelines already built?) to access these logs? My Managed VM module includes several components which could produce logs that I want to view:
App logs -- I can get these! No problem here.
Custom log files created by background processes I kick off in _ah/start (like "my_custom_1.log" in the screenshot)
STDERR & STDOUT from my background processes
Relevant Managed VM logs (e.g. for when an instance was restarted due to bad health... other system events like normal restarts?)
Basically I want "the total picture" at the instance level. Anyone tried to tame Managed VMs in this way with success? I'm not looking forward to rolling my own solution. And I wouldn't even know where to start on the problem of capturing STDERR and STDOUT. Any help appreciated.
There is a difference between App Engine logging and Google Cloud logging. Some of the Managed VM logs go to both, but much of it only goes to cloud logging.
Until recently there was not an API to read Cloud logs, only to write them. However, there is a new v2 beta API: https://cloud.google.com/logging/docs/api/introduction_v2
To do things at an instance level, entries in Cloud logging should have metadata set to denote which VM they came from. Both of these values seem to vary on logs from my VMs:
compute.googleapis.com/resource_name
compute.googleapis.com/resource_id
I'm trying to migrate an a web app from Google Appengine to a dedicated server and I've got stuck to the logging issue. Basically I would like to organise the logs per request/context(like on GAE) so that I can easily review the errors/trace on each request. The most advanced logging library I could find is the glog package but still I can't figure it out how to log per request/context.
Each request gives you a http.Request-object to work with.
If you're using sessions, then you'll have a sessions.Session-object to work with.
You will want to use those objects to help log per request/context, as they identify the request / session.
I am unable to update App Engine Java applications (tried two applications), getting the following:
Server returned HTTP response code: 500 for URL: https://appengine.google.com/api/updatecheck?runtime=java&release=1.9.5×tamp=1400116984&api_versions=['1.0']
and then the update process hangs. I was able to update the same applications a few hours ago. Is there a bug or do I need to update something on my end?
This was a known issue, but has since been fixed. If you have not already, I would recommend subscribing to emails from: https://groups.google.com/forum/#!forum/google-appengine-downtime-notify to get updates about system-wide problems.
I am getting the following error on the AppEngine DevServer in Go:
API error 1 (datastore_v3: BAD_REQUEST): ApplicationError: 1 app
"id1" cannot access app "id2"'s data
(where "id1" and "id2" are real identifiers used by two of my applications)
I have tried to empty the datastore using the --clear_datastore flag, and also specifying a new path to the datastore using --datastore_path. The latter did not seem to work, no data was stored at the new location. The former flag deleted the contents of the datastore, but whenever I try to upload a blob I get the error.
I am hoping there is something I can do to remedy this!
--EDIT: To clarify, I am not trying to move data across apps, I am merely trying to upload to the active app's blobstore. I am developing several apps at the same time (different companies), so the machine will have several datastores/blobstores. In Java this is not a problem, only in Go.
Also, this is only a problem on the DevServer, once I upload the app, everything works as it should.
Ex animo,
/Alexander.
GAE Apps cannot direcly access each other's data. This is a fundamental restriction. DevAppServer is merely preventing you from doing something during development that would be forbidden to a deployed app.
You can move data between apps via url fetching.