Limit on number of AWS Lambdas per region/account - aws-lambda

I would like to know if there is a limit on the number of Lambda functions one can define (either per region or per account). To be clear I am not talking about a limit on the number of instances of a single lambda function, but instead on the number of function definitions that are allowed.
Looking at http://docs.aws.amazon.com/lambda/latest/dg/limits.html I did not find any explicit limit. There is a limit on the "Total size of all the deployment packages that can be uploaded per region" that is set to 75 GB, which indirectly limits the number of defined functions (for instance, if average size - across all of my lambda functions - of the deployment package is 40MB, then there is a limit of 75GB/40MB = 1875 functions per region).

As you found on the AWS Lambda Limits page, there is no current limit on the number of AWS Lambda functions per region or account.
You are correct, that there is a limit on Function and Layer Storage. That is described as "The amount of storage that's available for deployment packages and layer archives in the current Region." By default, this is set to 75 GB per region. However, this limit is adjustable. If you're getting close to this limit, you can request a quota increase and expand your indirect limit on the number of functions or layers.
Check out the Service Quotas service to see your current hard and soft limits for AWS services and request quota increases.
To request an increase in function storage:
In the Service Quotas console, select the "AWS Lambda" service.
Then, select "Function and layer storage" and click "Request quota increase".
On the request form, enter your requested storage amount and submit the request.

Related

Why do I get in_use_customer_managed_encryption_keys quota exceeds quota limits creating Vertex AI endpoint with CMEK?

When attempting to create a Vertex AI endpoint with CMEK, I get:
Failed to create endpoint...The following quota metrics exceed quota limits: aiplatform.googleapis.com/in_use_customer_managed_encryption_keys'
Status: 429 Error code: 429
On the Console, under "IAM and admin", "Quotas", the limit for quota "In use customer managed encryption keys per region" for the region corresponding to my endpoint, is listed as 1 and current usage as 0. Perhaps the current usage must be less than the limit?
I requested a raise in that quota limit and in the description asked whether a limit >1 was required to create a single CMEK endpoint, however the response did not address this question but rather just asked for payment to increase the quota.
Yes, it appears that the current usage must be less than the limit i.e. a limit of 1 does not allow any usage.
I successfully applied for a quota increase to raise the limit to 2 and was subsequently able to create the endpoint with the CMEK key.

why is there a 1MB payload limit in aws lambda + alb configuration?

AWS lambda can be used to create serverless applications, but it has some limits. One of these is a limit on the payload size: you can only return a maximum if 1MB payload from your function.
Does anyone know why this limit exists?
AWS Lambda limits the amount of compute and storage resources that you can use to run and store functions. AWS has deliberately put several Lambda limits that are either soft or hard to prevent misuse or abuse.
Here is the reference from AWS documentation AWS Hard and Soft Limits

AWS Lambda Reserved and Unreserved Concurrency Alarm

In our set up, we have lots of AWS Lambda functions, developed by different teams. Some of the them have set a reserved concurrency. This eats out of the total concurrency of the account (1000).
Is there a way to monitor or set an alarm that is triggered when the unreserved currency drops below specific level?
This would be helpful to proactively do something to alleviate the issue and reduce failures.
In AWS there are pre-defined metrics, related to Lambda concurrency, that are exposed in AWS CloudWatch
ConcurrentExecutions: Shows you the concurrent executions that are happening at that moment across the all the Lambda functions in the Account including Reserved and Unreserved.
UnreservedConcurrentExecutions: This shows you the total concurrent executions, that are happening at that moment, that are using the Unreserved Concurrency.
The information I was looking for can be seen when we run the CLI command
ConcurrentExecutions and UnreservedConcurrentExecutions
$ aws lambda get-account-settings
{
"AccountLimit": {
"TotalCodeSize": 1231232132,
"CodeSizeUnzipped": 3242424,
"CodeSizeZipped": 324343434,
"**ConcurrentExecutions**": 10000,
"**UnreservedConcurrentExecutions**": 4000
},
"AccountUsage": {
"TotalCodeSize": 36972950817,
"FunctionCount": 1310
}
}
It is not possible to get these values in a dashboard. As we cannot execute API calls to fetch and display data in the dashboard.
Solution
We can create a lambda function, and, in that function, we can extract, using the API, the account wide values/settings for ConcurrentExecutions and UnreservedConcurrentExecutions. We can then create new metrics that would send the two values to CloudWatch. We can schedule AWS Lambda Functions Using CloudWatch Events.
Once we have the metric, we can set the required alarm for the Unreserved Concurrency.

Error 429: Insufficient tokens (DefaultGroupUSER-100s) What defines a user?

tl/dr do 100 devices all using the same Client ID count as 100 users, with their own limits, or one user sharing limits?
I have a webpage which reads and writes to a Google Sheet.
Because the webpage needs to know if a cell has changed, it polls the server once every 1000ms:
var pollProcId = window.setInterval(pollForInput, 1000);
where pollForInput does a single:
gapi.client.sheets.spreadsheets.values.get(request).then(callback);
When I tried to use this app with a class of 100 students I got many 429 error codes (more than I got successful reads) in response to google.apps.sheets.v4.SpreadsheetsService.GetValues requests:
Many of my users never got as far as seeing even the first request come back.
As far as I can make out, these are AnalyticsDefaultGroupUSER-100s errors which, according to the error responses page:
Indicates that the requests per 100 seconds per user per project quota
has been exhausted.
But with my app only requesting once per 1000 milliseconds, I wouldn't expect to see this many 429s as I have a limit of 100 requests per 100 seconds (1 per second) so only users whose application didn't complete in 100 seconds should have received a 429.
I know I should implement Exponential Backoff (which I'll do, I promise) but I'm worried I'm misunderstanding what a "user" in this context is.
Each user is using their own device (so presumably has a different IP address) but they are all using my "Client ID".
Does this scenario count as many users making one request per second, or a single user making a hundred requests per second?
Well, the user in the per user quota means that a single user making a request. So let's take the Sheets API, it has a quota of 100 for the Read requests per 100 seconds per user. So meaning only a single user can make a request per second. Note that Read request has a same set of quota as the Write request. But these two sets of quotas have their own set of quota and didn't share the same limit quota.
If you want a higher quota than the default, then you can apply for a higher quota by using this form or by visiting your developer console, then click the pencil icon in the quota that you want to increase.
I also suggest you to do the Exponential Backoff as soon as possible, because it can help you to avoid getting this kind of error.
Hope it helps you.

Understanding Quotas for Google API

I'm currently integrate Google+ API to my service.
I'd like to know what's the limitation for this kind of api:
https://www.googleapis.com/plus/v1/people/{user_id}/activities/public
in google develop console, I found this:
Quota summary
Free quota 10,000 requests/day
Remaining 9,998 requests/day
99.98% of total
Per-user limit
5 requests/second/user
I think there will be two kind of limitation:
Application level
For example, how many requests can an app send per day(sum of the number for all users), and what's the max qps?
User level
For example, how many requests can an app send per day for a special user, and what's the max qps?
But I can't find the exactly info, does anyone know?
Can't say particularly about this API, but when I used Google Places api the quota was linked with IP address.So if it expired, we need to use different IP for hit.No user / application quota.
you already have those answers in your question:
10,000 requests per day in total, using that developer console key, thus your total "app" calls.
per user there is no limit, there is a rate quota. a single user could at most make 5*(seconds in a day) requests per day.
in this specific api case this is much bigger than 10,000 thus that rate quota is not that useful (except it prevents users from quickly depeting the 10,000 daily quota).
you can edit that rate quota so its lower or higher, and is used so a single user cant consume all the app quota (maliciously or otherwise)

Resources