Service number limit - google-app-engine

What is the maximum number of services that an App Engine Flex app can have?
I found this site, under limits is the max number of services 5. Is this correct?

The Maximum services per application that the documentation you linked refers to are Backend services. The limit is the number of backend services available to the GAE flex application. This applies to running versions of GAE.
Also, regarding the last part of the limits documentation:
If you expect a notable upcoming increase in usage, you can proactively request adjustments from the App Engine Quotas page in the GCP Console.
This means that you can request an increase for the maximum services your application have access to by going to the GCP Quotas page and selecting Compute Engine API as Service. In the list of quotas you'll find the Backend services quota. With the current usage and the current limit. Select it and click Edit quotas to request an increase.

Related

Can traffic from App Engine for Google APIs travel through Serverless VPC access connector not be routed through cloud NAT?

We have set up a VPC Serverless access connector, and configured app engine to use this in app.yaml. We have egress_setting: all-traffic set, as we want to access a 3rd party API from a specific IP address. We used the documentation from https://cloud.google.com/appengine/docs/standard/python3/outbound-ip-addresses#static-ip.
Part of our testing is hitting a large set of URLs on app engine and checking the HTTP status. In this testing we noticed a dramatic reduction in the rate of serving requests when using the connector. Since all egress traffic is routed via the connector, my first inclination is to think our applications usage of Google APIs (datastore, cloud storage, Cloud SQL) is being impacted.
The connector is still has the minimum number of instances as active instances, indicating we have not reached the limit of it's performance, and that this is not the bottleneck. However, retesting with the vpc_access_connector removed from app.yaml returns performance to what we previously had.
I've tried enabling Private Google Access on the subnet the connector is linked to, but this has not improved the situation.
I think we may need to add some routing rules that allow us to send the traffic for Google APIs directly to Google's services, and not through the cloud NAT, but I'm unsure as to what rules would be applicable. I see no reason why this is not possible, but I haven't found the right documentation to guide me here.
Is this possible? Is this documented somewhere?

Throttling requests on AppEngine

My service sends messages to users, and I want to throttle on the following criteria; Saying a user A belongs to group G.
max 5 messages within last hour to user A
max 100 messages with last hour to members belong to group A
The number of messages and floating window size are configurable.
Any recommended options?
Is Cloud Endpoints an option?
Apigee is too expensive for our service.
More Background:
use app engine standard environment python2.7
the request is internal; a app engine service send request to another app engine service
Thanks in advance.
You can use API Gateway with App Engine instead of Apigee or Cloud Endpoints API Gateway quotas, it provides support for Python 2.7 and supports quotas like the ones you need.

Pure Appengine project is heavily using compute engine API?

I discovered that my pure App-Engine project (no Compute Engine Instances at all) is heavily using Google Compute Engine API (26,165 requests) but that is not visible as API use on the dashboard. Additionally, in Quotas I find strange items:
Google Compute Engine Networks Global 1 / 15
Google Compute Engine Firewall rules Global 2 / 200
Google Compute Engine Routes 2 / 250
I could disable the Compute Engine API, but I fear consequences if I don't understand what I am doing here.
Does anyone know further details or experience something similar?
PS: I also noticed that old deployed versions of my appengine-code from 2013 showed up, which I have deleted again.
My app is a standard env python one.
I do see the quotas you mentioned in the IAM & Admin Quotas page, but with different limits:
Google Compute Engine Networks Global 1 / 5
Google Compute Engine Firewall rules Global 4 / 100
Google Compute Engine Routes 2 / 200
I suspect that these are automatically driven by the standard env GAE infra (as opposed to being configured by the app itself for the flex env). Their visibility might not be intentional, tho.
I do see a few GCE API calls as well (but then my app is not very active) on the API Manager page:
Google Compute Engine API 17
I accidentally clicked on this API's Disable button and got this warning (potentially hinting at what this API is used for):
Disable Google Compute Engine API
Code that uses this project's keys, client IDs, or service accounts
will not be able to call this API.
Do you want to disable this API: Google Compute Engine API?
By clicking on the actual Google Compute Engine API text/link and then to the Quota tab I can see:
Queries per day Unlimited
Queries per 100 seconds 2,000
Queries per 100 seconds per user 2,000
My peak over the last 30 days is 15, so I won't worry about it :)
I do not see any unexpected older app version.

How Display 'Datastore Read Operations' of an app?

Is there a google app engine api to access the usage stats of an app. I want to display the 'Datastore Read Operations' of an app to users so they know how close to the limit they are.
Can this be done on google app engine ?
Currently there is no api to programatically access information on app engine datastore usage statistics including read, write quotas.
There was an app engine monitoring api project that was being considered to serve this purpose, but it seems to be on hold.
The feature request for a quota statistics api is still open. You can check if this potamus project for estimating usage information can be useful for your requirement.

hosting multiple apps under single google account in GAE

is it possible to host multiple apps in GAE using single google account.
You can host as many as ten application on GAE for a single account for free. Each application can have n number of serving version provided they don't go beyond free usage quota. To know more about free usage quota in GAE. You can have a look here
As far as I remember you can have max 10 projects per account in your appengine. The trick is you can configure your applications to communicate with each other and exchange data through some REST integration they way most web services work either xml or json are solid solutions for the proble. Send more specific inquiries if you have.

Resources