Which solution will meet these requirements?
Create an Amazon API Gateway REST API with a proxy integration to invoke the Lambda function. For each customer, configure an API Gateway usage plan that includes an appropriate request quota. Create an API key from the usage plan for each user that the customer needs.
Create an Amazon API Gateway HTTP API with a proxy integration to invoke the Lambda function. For each customer configure an API Gateway usage plan that includes an appropriate request quota Configure route-level throttling for each usage plan. Create an API Key from the usage plan for each user that the customer needs.
Create a Lambda function alias for each customer. Include a concurrency limit with an appropriate request quota. Create a Lambda function URL for each function alias. Share the Lambda function URL for each alias with the relevant customer.
Create an Application Load Balancer (ALB) in a VPC. Configure the Lambda function as a target for the ALB. Configure an AWS WAF web ACL for the ALB. For each customer configure a rale-based rule that includes an appropriate request quota.
Explanations:
API Gateway REST API supports usage plans and API keys, allowing you to configure request quotas for each customer. These quotas can be customized based on customer usage patterns, making this the most suitable solution.
While API Gateway HTTP API also supports usage plans, it doesn’t support the fine-grained route-level throttling like the REST API does, which may limit flexibility for some customer usage patterns.
Lambda function aliases with concurrency limits cannot provide time-based request quotas per customer. This approach does not offer flexibility in managing different quotas for different customers or specific time periods.
An Application Load Balancer with Lambda as a target is not a valid solution for managing request quotas per customer. AWS WAF’s rate-based rules are not suitable for implementing customer-specific quotas and do not offer the flexibility needed here.