Bird
Raised Fist0
AWScloud~7 mins

Lambda with API Gateway pattern in AWS - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes you want to run code in the cloud that responds to web requests without managing servers. AWS Lambda with API Gateway lets you do this by running your code only when needed and connecting it to web URLs.
When you want to create a simple web API without setting up servers.
When you need to run backend code that triggers on HTTP requests.
When you want to save costs by paying only for the code execution time.
When you want to quickly deploy a function that handles web requests.
When you want to build a serverless app that scales automatically.
Config File - template.yaml
template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  MyApiFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: index.handler
      Runtime: nodejs18.x
      CodeUri: ./src/
      Events:
        ApiEvent:
          Type: Api
          Properties:
            Path: /hello
            Method: GET

This is an AWS SAM template that defines a Lambda function and an API Gateway endpoint.

  • MyApiFunction: The Lambda function resource.
  • Handler: The file and function name Lambda runs.
  • Runtime: The language environment for the function.
  • CodeUri: Location of the function code.
  • Events: Defines API Gateway event to trigger Lambda on HTTP GET /hello.
Commands
Builds the Lambda function and prepares deployment artifacts.
Terminal
sam build
Expected OutputExpected
Building codeuri: ./src runtime: nodejs18.x metadata: {} architecture: x86_64 functions: ['MyApiFunction'] Running NodejsNpmBuilder:CopyNpmrc Running NodejsNpmBuilder:Build Build Succeeded
Deploys the Lambda function and API Gateway to AWS with guided prompts for configuration.
Terminal
sam deploy --stack-name my-api-stack --guided
Expected OutputExpected
Configuring SAM deploy Stack Name [my-api-stack]: AWS Region [us-east-1]: Confirm changes before deploy [y/N]: N Allow SAM CLI IAM role creation [Y/n]: Y Save arguments to samconfig.toml [Y/n]: Y Deploying with following values Stack name: my-api-stack Region: us-east-1 Confirm changeset: false Deployment s3 bucket: sam-artifacts-bucket Capabilities: ['CAPABILITY_IAM'] Waiting for stack create/update to complete Successfully created/updated stack - my-api-stack Outputs Key MyApiFunctionApi Description API Gateway endpoint URL for Prod stage for MyApiFunction function Value https://abcdefghij.execute-api.us-east-1.amazonaws.com/Prod/hello
→
--stack-name - Names the CloudFormation stack for deployment
→
--guided - Runs interactive deployment setup
Sends an HTTP GET request to the deployed API Gateway URL to test the Lambda function response.
Terminal
curl https://abcdefghij.execute-api.us-east-1.amazonaws.com/Prod/hello
Expected OutputExpected
{"message":"Hello from Lambda!"}
Key Concept

If you remember nothing else from this pattern, remember: API Gateway connects web requests to Lambda functions so your code runs only when needed without managing servers.

Common Mistakes
Not setting the correct handler path in the Lambda function configuration.
Lambda will fail to find the function to run, causing errors on invocation.
Ensure the handler matches the file and exported function name exactly, like 'index.handler'.
Forgetting to deploy the API Gateway after updating the Lambda function.
Changes won't be available on the web URL, so you see old or no responses.
Always run 'sam deploy' after code or configuration changes.
Using the wrong HTTP method when testing the API (e.g., POST instead of GET).
API Gateway will return method not allowed errors.
Use the HTTP method defined in the API event, here GET.
Summary
Use an AWS SAM template to define a Lambda function triggered by API Gateway on HTTP requests.
Build the function with 'sam build' to prepare deployment files.
Deploy the stack with 'sam deploy --guided' to create the Lambda and API Gateway resources.
Test the API by sending an HTTP request to the API Gateway URL to invoke the Lambda function.

Practice

(1/5)
1. What is the primary role of AWS API Gateway when used with Lambda in a serverless architecture?
easy
A. To receive HTTP requests and trigger Lambda functions
B. To store data permanently
C. To run long-running background tasks
D. To manage virtual machines

Solution

  1. Step 1: Understand API Gateway's function

    API Gateway acts as a front door to accept and process HTTP requests from clients.
  2. Step 2: Connect API Gateway to Lambda

    API Gateway triggers Lambda functions to execute backend logic upon receiving requests.
  3. Final Answer:

    To receive HTTP requests and trigger Lambda functions -> Option A
  4. Quick Check:

    API Gateway triggers Lambda = A [OK]
Hint: API Gateway handles HTTP, Lambda runs code [OK]
Common Mistakes:
  • Confusing API Gateway with data storage
  • Thinking Lambda manages servers
  • Assuming API Gateway runs background tasks
2. Which of the following is the correct way to configure an API Gateway method to trigger a Lambda function?
easy
A. Set the integration type to HTTP and specify the Lambda URL
B. Set the integration type to VPC Link and attach Lambda
C. Set the integration type to Lambda Function and select the function ARN
D. Set the integration type to MOCK and provide Lambda code inline

Solution

  1. Step 1: Identify correct integration type

    API Gateway uses 'Lambda Function' integration to directly invoke Lambda functions.
  2. Step 2: Specify Lambda function ARN

    You must provide the ARN (Amazon Resource Name) of the Lambda function to link it properly.
  3. Final Answer:

    Set the integration type to Lambda Function and select the function ARN -> Option C
  4. Quick Check:

    Integration type Lambda Function + ARN = D [OK]
Hint: Use 'Lambda Function' integration with ARN [OK]
Common Mistakes:
  • Using HTTP integration instead of Lambda Function
  • Confusing MOCK integration with Lambda
  • Incorrectly using VPC Link for Lambda
3. Consider this AWS Lambda function triggered by API Gateway:
exports.handler = async (event) => {
  return { statusCode: 200, body: JSON.stringify({ message: event.queryStringParameters.name }) };
};
What will be the response body if the API Gateway is called with URL ?name=Alice?
medium
A. {"message":"Alice"}
B. {"message":null}
C. {"message":"name"}
D. Error: event.queryStringParameters undefined

Solution

  1. Step 1: Understand event object from API Gateway

    API Gateway passes query parameters inside event.queryStringParameters, so event.queryStringParameters.name equals 'Alice'.
  2. Step 2: Check Lambda return value

    Lambda returns JSON string with message key set to 'Alice', so response body is '{"message":"Alice"}'.
  3. Final Answer:

    {"message":"Alice"} -> Option A
  4. Quick Check:

    Query param 'name=Alice' -> message = 'Alice' [OK]
Hint: Query params in event.queryStringParameters [OK]
Common Mistakes:
  • Assuming queryStringParameters is null
  • Returning raw object instead of JSON string
  • Confusing parameter name with literal string
4. You deployed an API Gateway with Lambda integration but receive a 502 Bad Gateway error when calling the API. What is the most likely cause?
medium
A. API Gateway endpoint URL is incorrect
B. Lambda function is not returning a properly formatted response
C. Lambda function has no execution role assigned
D. API Gateway method is set to MOCK integration

Solution

  1. Step 1: Understand 502 Bad Gateway meaning

    502 error usually means API Gateway received an invalid response from Lambda.
  2. Step 2: Check Lambda response format

    Lambda must return an object with statusCode and body as string; missing or malformed response causes 502.
  3. Final Answer:

    Lambda function is not returning a properly formatted response -> Option B
  4. Quick Check:

    502 error = bad Lambda response format [OK]
Hint: 502 means Lambda response format error [OK]
Common Mistakes:
  • Assuming wrong API Gateway URL causes 502
  • Ignoring Lambda execution role issues (causes 403)
  • Confusing MOCK integration with Lambda integration
5. You want to design a serverless API using API Gateway and Lambda that handles high traffic with unpredictable spikes. Which design choice best ensures scalability and cost efficiency?
hard
A. Use API Gateway with Lambda proxy integration and enable Lambda reserved concurrency
B. Use API Gateway with HTTP integration to EC2 instances behind an autoscaling group
C. Use API Gateway with MOCK integration and pre-warm Lambda functions manually
D. Use API Gateway with Lambda proxy integration and rely on Lambda's default scaling without reserved concurrency

Solution

  1. Step 1: Understand Lambda scaling behavior

    Lambda scales automatically with incoming requests without needing reserved concurrency unless limiting concurrency is required.
  2. Step 2: Evaluate cost and scalability

    Relying on default Lambda scaling avoids paying for reserved concurrency and handles unpredictable spikes efficiently.
  3. Step 3: Compare other options

    EC2 autoscaling adds server management and cost; MOCK integration doesn't run real code; reserved concurrency limits scaling.
  4. Final Answer:

    Use API Gateway with Lambda proxy integration and rely on Lambda's default scaling without reserved concurrency -> Option D
  5. Quick Check:

    Default Lambda scaling + proxy integration = C [OK]
Hint: Default Lambda scaling handles spikes best [OK]
Common Mistakes:
  • Setting reserved concurrency unnecessarily limits scaling
  • Using EC2 adds complexity and cost
  • Using MOCK integration doesn't run Lambda code
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard