Google App Engine Flex Throws 502 After adding Cloud Endpoints - google-app-engine

I have an app running on App Engine Flex (Google Go Runtime with a couple extra file in the docker runtime). It was working fine, with no issues.
I then added Google Cloud Endpoints and all of a sudden I was getting 502s for every request, both going directly to the app & going through Cloud Endpoints.
Logging into the instance, it looks like the nginx-proxy itself is throwing errors.
Downloading Endpoints Service Configuration to /etc/nginx/endpoints/service.json
curl: (22) The requested URL returned error: 403 Forbidden
Failed to obtain Endpoints Service Configuration from Service Management API
/sbin/start-stop-daemon: warning: failed to kill 26: No such process
The only addition to the app.yaml is
endpoints_api_service:
name: "redacted.appspot.com"
config_id: "2017-06-01r0"
I'm running the latest version of gcloud. I was getting 403 forbidden when deploying the openapi.yaml file, and then I updated to the latest gcloud which fixed that issue. Not sure if that's related or not.
Has anyone even encountered this before?

From Cloud Console UI, could you double check if your project has "Google Service Management API" enabled?
If already enabled, you can SSH into your Flex vm, and fetch the access token by:
curl -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token
Then you can use this URL to check its scopes
https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=

Turns out the core issue was that the version of gcloud I first used to upload google cloud endpoints allowed me to use an unsupported parameter (File). After switching to a wildcard, everything worked.

Related

Google App Engine: "GET /_ah/start HTTP/1.1" 500

I have a Google App Engine python apps deployed without problems. I changed some logging and redeployed, two things happened:
The endpoint keep returning "GET /_ah/start HTTP/1.1" 500
On GCP dashboard under App/Version I see that there are not instances on the latest version of my app. (I manually migrated the service on the last version of working in the image below)
This looks like they are having internal problems Google Cloud, or I am doing something wrong? Is there a way to manually allocate instance on the latest version of my GAE? It should be automatic to my understanding.
Automatically migrating the traffic to a newly deployed version depends on the options used for deployment. From gcloud app deploy:
--promote
Promote the deployed version to receive all traffic. Overrides the
default app/promote_by_default property value for this command
invocation. Use --no-promote to disable.

Python program working fine in App Engine Standard Environment. But we get SSL error when we schedule it in App Engine Flexible Environment

We have successfully executed the source data collection python program using App Engine Cron service in App Engine Flexible environment.
Now, We are trying to execute the same python program in App Engine Standard Environment. But, We are getting the Error Can't connect to HTTPS URL because the SSL module is not available.
Anyone came across this Error ? I have given full access to App Engine default service account for the Bucket. Please help to resolve this issue.
Managed to resolve this error.
We need to add the below libraries in the app.yaml
libraries:
- name: ssl
version: latest

Unable to deploy app engine app using Eclipse plugin

My user has "App Engine Deployer" & "App Engine Admin" permission. When I try to deploy the app using Eclipse, I get following error -
com.google.appengine.tools.admin.HttpIoException: Error posting to URL: https://appengine.google.com/api/datastore/index/add?app_id=xxxxxxxxxx&version=9&
403 Forbidden
You do not have permission to modify this app (app_id=u's~xxxxxxxxxx').
Though when I check cloud control panel, I see that the app is deployed. Why this error?
Here is full deployment console detail:
Preparing to deploy:
Created staging directory at: 'C:\Users\punit\AppData\Local\Temp\appcfg2201895061249198461.tmp'
Scanning for jsp files.
Compiling jsp files.
Scanning files on local disk.
Initiating update.
Cloning 3 static files.
Cloning 29 application files.
Deploying:
Uploading 0 files.
Initializing precompilation...
Deploying new version.
Closing update: new version is ready to start serving.
Uploading index definitions.
com.google.appengine.tools.admin.HttpIoException: Error posting to URL: https://appengine.google.com/api/datastore/index/add?app_id=xxxxxxxxxx&version=9&
403 Forbidden
You do not have permission to modify this app (app_id=u's~xxxxxxxxxx').
And here is stacktrace in the log:
Unable to update:
com.google.appengine.tools.admin.HttpIoException: Error posting to URL: https://appengine.google.com/api/datastore/index/add?app_id=xxxxxxxxxx&version=9&
403 Forbidden
You do not have permission to modify this app (app_id=u's~xxxxxxxxxx').
at com.google.appengine.tools.admin.AbstractServerConnection.send1(AbstractServerConnection.java:336)
at com.google.appengine.tools.admin.AbstractServerConnection.send(AbstractServerConnection.java:287)
at com.google.appengine.tools.admin.AbstractServerConnection.post(AbstractServerConnection.java:266)
at com.google.appengine.tools.admin.NoLoggingClientDeploySender.send(NoLoggingClientDeploySender.java:35)
at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:1168)
at com.google.appengine.tools.admin.AppVersionUpload.updateIndexes(AppVersionUpload.java:534)
at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:205)
at com.google.appengine.tools.admin.AppAdminImpl.doUpdate(AppAdminImpl.java:572)
at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:58)
at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:433)
at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:158)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
I had exactly the same error, no matter if I tried from Eclipse, from commandline with mvn appengine:update or with appcfg.sh update. The situation is that it's not possible to update
Datastore indices
Task queues
Cron jobs
403 Forbidden You do not have permission to modify this app
(app_id=u's~xxxxxxxxxx').
The only way to achieve a complete deployment seems to grant the user Project Owner permissions (maybe Project Editor would have been enough, I didn't test that) at least temporarily.

deploy web application to google app engine on travis-ci - travis is asking for a password

I´m trying to deploy a web application to google app engine after successful build(I´m using maven on my project) and travis-ci is asking for my password. How can I input my password or specify somewhere else?
Based on the limited information you are giving us, I am guessing this is happening during the gcloud preview app deploy call.
Typically the docker TLS Verification will need a local public key for a Cert and this requires a passcode response. This situation can be avoided by providing the cert using the travis encrypt-file api and calling gcloud auth activate-service-account during the build. see gloud cli here
Please see the travis yml here for a full example
As always, post questions either here or github for additional walk-through questions.

Google App Engine SOAP Not Appearing in phpinfo()

Fatal error: Class 'SoapClient' not found in ../libraries/Shipping/drivers/Shipping_usps.php on line 12
Using Google App Engine for PHP, I receive the error above when try to instantiate a SoapClient object. I've checked phpinfo() and the SOAP extension isn't showing up. When I deploy to production, it does show up, so I figure there's something that's causing the extension not to load locally. I run the dev server from the command line as opposed to the application on Mac OS.
GAE is up to date. Any advice is appreciated.

Resources