I am using gRPC on Google Cloud GKE environment. Given this URL "https://cloud.google.com/endpoints/docs/" it implies that we can use gRPC with App Engine Flexible environment. However from the documentation it is impossible to find in how we can use ESP with the App Engine flexible runtime. I've tried it, but I cannot see how to expose both my health checks and expose the gRPC ports through to ESP given my App Engine URL. I based my tests on this:
Where is the documentation so I can use gRPC, with ESP (Extensible service proxy, nginx based) on this environment? Is the documentation wrong or is my assumption that I can use Firebase JWT Auth like I do on GKE? I prefer to use App Engine Flexible for my server. I use iOS as a mobile client, fully locked in to Google/Firebase.
That was mistake in the documentation. gRPC with App Engine flex is not supported. The documentation has been updated. Sorry for the confusion.
Related
Is it possible to host a gRPC server in GAE Standard environment using Python? I have seen https://cloud.google.com/endpoints/docs/grpc/tutorials which seems to me you have to use ESP to host a gRPC server in GCP (GAE Standard is not listed here). Is ESP the only way to implement a gRPC server? Can't I write my own gRPC implementation such as https://grpc.io/docs/languages/python/basics/ and host it in GAE Standard?
I apologize for the basic questions as gRPC is quite new to me.
gRPC support is not available for App Engine as mentioned in group conversation here
.
Endpoints supports gRPC services for GKE, Compute Engine, and Cloud
Run (Beta). The framework available for Cloud Endpoints control of API in App Engine for Python you can refer
here Cloud Endpoints Frameworks
I see no way to connect my app engine backends with Cloud CDN. Seems like it's only available when using Compute Engine directly.
No, that is not currently possible. Currently, Google Cloud CDN can be used only to serve content that originates from Cloud Storage buckets, Compute Engine instance groups, and Compute Engine network endpoint groups. I agree that it would make sense to support App Engine Standard, too!
Update
Currently in beta is Serverless NEGs (Network Endpoint Groups) which will allow you to use App Engine behind a HTTP(S) Load balancer and give you all the features provided with that including CDN
Original
Yes, App Engine will serve content via Google Cloud CDN as long as a cacheable response is returned.
Try setting the Cache-Control header to something like max-age=86400, public and ensuring a Set-Cookie header is not sent with the response
Related questions:
How to do authentication check in Python library from Google Cloud Endpoints on GAE standard
How to check service-to-service authentication in Google Cloud Endpoints?
I have an App Engine Standard (Python) environment (using webapp2) that will be making calls to a Cloud Endpoint (no user authentication required, but the calls must be service-to-service secured) and I would like some clarification on how to do this using the Cloud Endpoint Framework for App Engine Standard.
If I go about the method described in (2) above, does this mean I would have to manual edit the openapi.json file that is generated from lib/endpoints/endpointscfg.py get_openapi_spect with the security definitions? The documentation seemed geared more towards GCE and App Engine Flex environments that are using the Cloud Endpoints for OpenApi so it was confusing whether I had to edit my #endpoints.api configurations.
Or, given that I am making a call from App Engine Standard environment, would I just be able to use urlfetch and AppIdentity: https://cloud.google.com/appengine/docs/standard/python/appidentity/ and assert identity to the endpoint? If so, what would the configurations look like?
Im creating a Node.js website that probably won't have loads of traffic, and was looking into cheap solutions to host the site. Came across Google cloud services offering free usage for their services with limits. A f1-mirco is more than enough for my needs, but I will happily pay for some usage if it goes over by any chance.
I wanted to setup a linux centOS 7 on GCE (which I already did), and run my application and REST API on it. Now here comes the problem.
I tried to use Google's datastore service, but it sprung an app engine instance and without it datastore won't work.
Is datastore entirely relying on app engine to function?? In the docs, it said if you use any of the client API, it requires app engine. What can I do to not use the client api and query data then? Don't want to use the app engine at the moment or datastore is just not for me then?
Thanks for any help!
Some of the underlying infrastructure of Cloud Datastore and App Engine are still tied together for creation, etc. So while creating an Cloud Datastore database also defines an App Engine instance for the project, it doesn't require you to use it. You don't get charged for App Engine either, unless you decide to deploy an App using it.
You should be totally fine use the Google Cloud Node client library on the f1 micro instance.
We are using amazon sdk for sns push notifications. We deployed our app on Google App engine. While using amazon sdk we are getting following exception
Could not initialize class com.amazonaws.ClientConfiguration
at com.amazonaws.services.sns.AmazonSNSClient.<init>(AmazonSNSClient.java:128)
Looks like is it because of Sockets/Threads using by Amazon SDK.
Is there anyway to use amazon sdk on google app engine application.
Which App Engine environment are you using? (standard or flex). App Engine standard may require the use of the Sockets API or UrlFetch for outbound connections, which won't always work with open source libraries (today).
One option here is to deploy your app to App Engine Flexible, which won't have the same requirements.