How APISIX calls AWS Lambda through the aws-lambda plugin
The team that already runs Lambda functions and now needs a self-hosted gateway for authentication, routing and policy in front of them should start by understanding one plugin. The aws-lambda plugin invokes either a Lambda function URL or an Amazon API Gateway endpoint on the route's behalf, so APISIX becomes the public entry point while the function stays where it is. The plugin authenticates each call in one of two ways: an API Gateway API key, or IAM access keys that the plugin signs with AWS Signature Version 4 (SigV4). Which one applies depends on which kind of endpoint you call, so confirm that before you design the route.
The service field decides how the request is signed and addressed. It defaults to execute-api, which matches an Amazon API Gateway endpoint. For a Lambda function URL you must set service to lambda, otherwise the SigV4 signature will not match the endpoint you are calling. Set region to the region where the function lives, and store the IAM access key and secret in a way your security team accepts, since they are credentials that grant invocation rights. The aws-lambda plugin reference lists the exact field names and their defaults for your APISIX version, and that page is the right source to check before you copy configuration into a test environment.
Before you go further, confirm three things with your AWS team and in a test route: which endpoint type each function exposes, which authentication method the function's resource policy expects, and whether the IAM principal used by APISIX has permission to invoke that function and nothing more. Run a request through a non-production route and check the response status for both a valid and an invalid credential. A signature mismatch usually points back to the service value or the region, not to the function code, so these checks save debugging time later.
What you need before routing to Lambda
Routing API traffic through APISIX to Lambda touches the gateway version, the deployment mode, AWS identity, the network path and client TLS. Settle these six items before writing any route, because each one changes how the aws-lambda plugin is configured and tested.
Pin the APISIX version
Run APISIX 3.19.0, the latest release in the supplied downloads page, and record the exact version in your change record. The downloads page does not mark any release as long-term support, so plan your own upgrade cadence. Confirm the aws-lambda option names, defaults and the service value against the documentation for the version you deploy, not against older examples you find online.
Choose a deployment mode
APISIX runs in traditional, decoupled or standalone mode. Traditional and decoupled modes depend on an etcd cluster, while standalone reads routes from a YAML or JSON file. For a small set of Lambda routes managed as code, standalone is often simpler. Pick the mode before you design the route files or Admin API access, because it determines where configuration lives and how changes roll out.
Plan the AWS identity
Decide whether APISIX authenticates to Lambda with an API Gateway API key or with IAM access keys signed using Signature Version 4. For IAM, create a dedicated principal that can only invoke the specific function URL or API Gateway resource, and plan how its access keys are stored and rotated. Confirm with your AWS administrators which account owns the function and whether cross-account invocation is needed.
Fix the Lambda endpoint
Choose between a Lambda function URL and an Amazon API Gateway endpoint, because the plugin's service setting depends on it. The default execute-api fits API Gateway, while function URLs need lambda. Record the region, the endpoint hostname and any path mapping, since APISIX forwards the path it receives and the function must expect that path.
Confirm egress to AWS
The gateway nodes must reach the Lambda endpoint over HTTPS from your network. Check outbound rules on firewalls, proxies, NAT gateways and any VPC endpoint policies, and confirm DNS resolves the AWS hostname from inside the cluster or host. In restricted or air-gapped networks, this path often needs a formal change request, so start that review early.
Set client TLS and certificates
Decide how clients reach APISIX over HTTPS, which certificate authority issues the gateway certificate, and where private keys are stored. Client traffic is usually terminated at APISIX, so verify the certificate chain, the hostnames clients use and renewal ownership. Keep the TLS design separate from the Lambda credentials, since they protect different hops.
Configuring the aws-lambda plugin step by step
This sequence takes you from a Lambda endpoint that exists only behind a private boundary to an APISIX route that signs or authenticates each call, forwards the right path, and fails predictably when a request is unsigned or slow. Each step ends with a check you can run before moving on.
Confirm the function endpoint type
Decide whether APISIX will call a Lambda function URL or an Amazon API Gateway endpoint in front of the function, and record the exact URL, region and account that will be used. Your AWS team or DeployOpen confirms the function resource policy and that the endpoint answers a direct test request outside APISIX. You are done when a direct call from a trusted host returns the function's expected response, which proves the target works before the gateway is involved.
Create the calling credential
Choose the authentication method for APISIX. For an API Gateway endpoint you can use an API key, while IAM access keys or an IAM role with the lambda:InvokeFunctionUrl permission fit a function URL. Create a least-privilege IAM identity scoped to the single function or stage, store its secret in your secrets system rather than in route definitions, and record the key identifiers for the next step. The check is that the identity can invoke the function directly and nothing broader.
Create the upstream route with the aws-lambda plugin
Using the Admin API or your configuration-as-code files, create a route that matches the client path and attaches the aws-lambda plugin. Set the function URL or endpoint, the region, the authentication fields for the chosen method, and the service value, which defaults to execute-api and must be set to lambda for function URLs. Confirm the route is saved by reading it back from the Admin API, and confirm that the credential is referenced rather than written inline.
Set path forwarding and timeouts
Decide how the client path maps to the function's expected path, including any prefix that should be stripped before the call, and document that mapping with the route. Then set the timeouts that APISIX applies to the upstream call so they sit below the client-facing timeout and above the function's normal worst-case duration. Your team should confirm both values against the function's configured Lambda timeout, since a gateway timeout shorter than the function runtime produces errors that look like function failures.
Restrict who can reach the route
Add the client-side authentication plugin your design requires, such as key-auth, jwt-auth or openid-connect, so that callers are identified before APISIX signs the request to Lambda. Keep the Lambda credential inside the gateway so that clients never see or send AWS keys. The check is that a request with no client credential is rejected at the gateway and never reaches the function, which you can confirm in both gateway logs and function invocation metrics.
Test a signed request through the gateway
Send a request from a client that holds a valid credential through the APISIX route and compare the response body and status with the direct test from the first step. Check the APISIX access log for the upstream status and latency, and confirm in your AWS logs that the invocation arrived with the expected identity. You are done when the function response returns through the gateway unchanged for the tested path.
Test rejection of unsigned and malformed calls
Send requests with no credential, an expired or wrong credential, and a path that the route does not match, and confirm that each is rejected at the gateway with the status you designed for. Then send a request that exceeds the upstream timeout, using a test function or a controlled delay if your team has one, and confirm the client receives the gateway timeout response. Record the results with the route version so that regressions can be compared after each change.
SigV4 signing or API keys: which credential fits the function
With IAM access keys, APISIX signs each outbound request using AWS Signature Version 4, so AWS evaluates the call against an IAM principal. The gateway holds the access key ID and secret, and the security team controls them through IAM policies that name the exact Lambda actions allowed. This model suits internal callers or service-to-service traffic where the gateway is already trusted inside your AWS account boundary. It also means the client never sees AWS credentials, because APISIX adds the signature on its side.
- Credential holder: APISIX stores the IAM key pair, so restrict who can read or change the plugin configuration in the Admin API.
- Rotation: Rotate keys on your own schedule by issuing a new key, updating the plugin configuration, and then deleting the old key, which requires a coordinated change window.
- Least privilege: Scope the IAM policy to the specific function ARN and the invoke action, rather than granting broad Lambda access.
- Endpoint fit: Signing works with the default service setting for API Gateway endpoints, and the service value must be changed for function URLs.
- Client view: Clients send their own gateway credentials, such as an APISIX consumer key or token, and receive the Lambda response without any AWS signature.
Before you choose this path, confirm with your AWS administrators that the IAM principal, key lifetime, and audit logging meet your access review process.
With an Amazon API Gateway API key, APISIX sends a static key to an API Gateway endpoint in front of the function. The key identifies a usage plan rather than an IAM principal, so it controls throttling and quotas on the AWS side but does not on its own define what the function may do. This option is simpler to hand to partners or applications that already use API keys, and it keeps AWS credentials out of the gateway. Because the key is a shared secret, its handling matters as much as its scope.
- Credential holder: The API Gateway stage holds the key association, while APISIX stores the key value in its plugin configuration.
- Rotation: Rotation means creating a new key, attaching it to the usage plan, updating APISIX, and retiring the previous key, so plan a dual-key period if the platform allows it.
- Authorization gap: A valid key does not identify the caller, so pair it with authentication on the APISIX side when callers differ.
- Endpoint fit: This path uses an API Gateway endpoint, so the aws-lambda service value stays at its default.
- Client view: Clients either send their own gateway credential to APISIX or rely on APISIX to attach the key, which changes what your audit logs can attribute.
Confirm with AWS documentation for your region and API type how usage plans, stages and key association behave before you commit to this option.
Lambda function URLs use a different endpoint from API Gateway, so the plugin's service setting has to match the target. Per the aws-lambda plugin documentation, the default service is execute-api, which is correct for API Gateway endpoints, and it must be set to lambda when APISIX calls a function URL. Using the wrong value typically produces signing or routing errors, so this setting is a common first failure during setup. Check it before debugging credentials or network paths.
- Service value: Use
execute-apifor API Gateway endpoints andlambdafor function URLs. - Signing scope: The region and service name are part of the signature, so a mismatch fails authentication even when keys are valid.
- Function URL auth type: Confirm whether the function URL requires IAM authentication, because that setting determines whether SigV4 signing is required at all.
- Path handling: Confirm how the path reaches the function, since function URLs and API Gateway pass path and query data differently.
- Client view: A signing mismatch usually surfaces to the client as an authorization error from AWS, so check the gateway logs for the upstream status before blaming the client.
Verify the service value and the function URL auth type in a non-production route before you move the configuration to production.
The right credential depends on who calls the function, how many teams own the credential, and what your audit process needs to show. Internal services inside one AWS account often fit IAM signing, while external partners or product teams that already manage API keys often fit API Gateway keys. Neither option removes the need for authentication at the APISIX route, so the decision is about the upstream credential, not the client's identity. Write the decision down with its owner and rotation process before the first production deployment.
- Caller identity: Choose IAM signing when the calling service has a clear identity, and API keys when callers are external or shared.
- Ownership: Decide whether the platform team, the application team, or a security team holds and rotates the secret.
- Audit trail: IAM principals appear in AWS logs by identity, while API keys need additional attribution at the gateway.
- Rotation cadence: Ask your security team which rotation interval and evidence they require, and confirm that AWS and APISIX can both support it.
- Future change: Moving from API keys to IAM later changes both the APISIX plugin configuration and the client contract, so plan it as a migration.
Before you finalize, ask your AWS and security teams to review the chosen credential against your access review and key management policies.
How request fields map from the gateway to the function
This table compares each part of a client request with what the Lambda function receives through the aws-lambda plugin, and where the function response returns to the client. Read it as a checklist for the handler contract: confirm each row against the plugin documentation for your APISIX version before you write the function, because header handling and event shape are the details most likely to differ between releases.
| Request element | What the function receives | What the team must confirm |
|---|---|---|
| Path | Route path as forwarded to the function URL or API Gateway endpoint, after any path rewrite on the route | Whether the route's path rewrite or prefix stripping is applied before the aws-lambda call, and how the function URL path is composed |
| HTTP method | Method passed through to the invoked endpoint | That the route's method list matches what the function handler accepts |
| Query string | Query parameters carried into the invocation event | How multi-value and encoded parameters appear in the event shape for your Lambda runtime |
| Headers | Client headers forwarded, with hop-by-hop headers removed by the gateway | Which headers APISIX strips or adds, and whether Authorization is forwarded to the function or consumed at the gateway |
| Body | Request body passed as received, subject to size limits on the route and the function endpoint | Body encoding handling for binary payloads and the maximum payload size for your endpoint type |
| Consumer identity | Gateway-set identity headers or fields are not guaranteed to be present; the function cannot rely on them unless the plugin config adds them | Which consumer or route variables are exposed to the function, and the header names used for them in your version |
| Authorization attribute | Authorization decisions are made at the gateway through the consumer and route plugins, before the aws-lambda plugin runs | The plugin order for your authentication plugin and aws-lambda, and whether the function also validates the caller |
| Function response | Status code, headers and body returned by the function are relayed to the client by the gateway | How the function's response format is mapped, including status codes, base64 handling and any header the gateway removes |
Securing the gateway-to-Lambda path
Once APISIX sits in front of a Lambda function, the gateway holds the credentials that reach the function and decides which identity headers the function trusts. The cards below cover the controls that keep that path closed, from the IAM identity used for invocation to who may change routes and how client headers are handled.
Least-privilege IAM for the invoking identity
The aws-lambda plugin signs requests with IAM access keys when you choose SigV4, so the identity behind those keys can invoke whatever it is allowed to invoke. Grant it lambda:InvokeFunctionUrl or lambda:InvokeFunction only on the specific function ARNs or aliases that the route serves, not on a wildcard. Ask your team who owns that IAM user or role, how its keys rotate, and whether a separate identity exists per route group.
Keep keys out of route configuration
Storing AWS access keys or API Gateway API keys directly in a route puts secrets into the configuration store, where anyone who can read routes can read them. Reference secrets from an external source or environment variable instead, so the route holds only a pointer. Confirm which secret source your APISIX build resolves, and test what happens when a reference fails to resolve, because a silent fallback to an empty key would surface as authorization errors rather than a clear fault.
Restrict who can change routes
Anyone who can call the Admin API can change where a route forwards, which function it invokes and which plugins run in front of it. Limit Admin API access to a small operator group on a network path you control, and set a strong Admin API key that is not the default. Record who changed each route, because a modified route that points at a different Lambda function is a change in what your code executes.
TLS for client traffic
Clients reach APISIX over HTTPS, and the gateway then signs and forwards the request to Lambda over AWS endpoints. Terminate TLS at APISIX with certificates your organization manages, and keep the client-facing listener separate from the Admin API. Confirm the certificate rotation process and which protocol versions and ciphers your policy requires, since the gateway is the only point where that policy applies to the client connection.
Header trust at the gateway
Lambda functions often read identity from headers such as a user ID or tenant claim, and a client that can set those headers can impersonate another user. Strip or overwrite identity headers at the gateway after authentication, and only add them from validated claims or consumer data. Test with a request that sends a forged header to confirm the function receives only the value APISIX sets.
When a gateway in front of Lambda is worth the extra hop
A gateway in front of Lambda is worth its extra hop when many services need one authentication model and one place to change routes and policies. A single function behind a function URL or an Amazon API Gateway endpoint can often be secured directly with IAM or an API key. Once a dozen functions, a mix of serverless and container backends, and several consumer types share the same rules, a gateway such as APISIX lets your team express authentication, rate limits and path forwarding once rather than per function. The decision is less about Lambda itself than about whether your API estate needs a single control point.
The cost of that control point is real. APISIX adds a hop on every request, a component your team must patch, scale, back up and monitor, and a configuration store to protect, whether you run traditional mode with etcd or standalone mode with a file. Before committing, confirm which of these you will own: the APISIX version and upgrade cadence, the Admin API exposure, and who is on call when the gateway fails in front of functions that otherwise would have stayed reachable. Current release details are listed on the Apache APISIX downloads page.
For a small number of functions with simple callers, skip the gateway. Lambda function URLs or API Gateway alone may meet the need, especially if you only need IAM authorization or API keys with usage plans. Choose APISIX when you also need self-hosted control over traffic, consistent authentication across serverless and non-serverless services, or a gateway your platform team already operates. Write down the specific policies you expect to share before you decide, because a gateway that only forwards requests to one function adds cost without adding control.
Where routes to Lambda usually break
Why does my aws-lambda route return a SignatureDoesNotMatch error?
The most common cause is a wrong service value. The aws-lambda plugin defaults service to execute-api, which is correct for Amazon API Gateway endpoints but wrong for Lambda function URLs, which need service set to lambda. Check the service and region values against the endpoint you are calling. Next, confirm the signing keys belong to an IAM identity with permission to invoke the function, and that the system clock on the APISIX nodes is synchronized, because SigV4 signatures are time-bound. If the error persists, compare the host header APISIX sends with the host in the function URL or API Gateway endpoint, since a mismatch changes the signed canonical request.
How do I tell a gateway timeout from a Lambda timeout?
A gateway timeout comes from APISIX closing the upstream connection before the function responds, while a Lambda timeout comes from the function reaching its own configured limit. Check the function's timeout setting in AWS, then check the upstream timeout settings on the APISIX route. The gateway timeout should be longer than the function timeout plus network time, or the gateway will cut off requests the function is still processing. Review the Lambda duration and error metrics in CloudWatch for the same time window as the gateway error. If the function completes but the client still sees an error, the response is probably being delayed or dropped between the gateway and the client.
Can cold starts cause 504 errors through APISIX?
Yes. When a function has been idle, the first invocation must initialize the runtime and load code, which can add enough latency to exceed the upstream timeout on the gateway route. The symptom is occasional 504 responses that cluster after quiet periods and disappear on retry. To check, look for init duration entries in the function's logs and compare them with the gateway's upstream timeout. Options include raising the route timeout for that function, reducing package size and dependencies, or provisioning concurrency in AWS if the workload justifies its cost. Each option has a recurring cost or a trade-off in latency and scaling that should be confirmed with your team before the change is made.
Why does the function receive a different path or query string than the client sent?
Path forwarding is usually altered by the route definition. Check whether the APISIX route uses a uri pattern with a prefix that is stripped or rewritten before the request reaches the function, and whether the function URL or API Gateway resource expects that path. For function URLs, the path after the domain is passed to the function event, so a stripped or added prefix changes how your handler routes the request. Compare the request as the client sends it with the event the function logs. Query strings and trailing slashes are also worth checking, since a rewrite can drop them or add a slash that the handler does not expect.
Why do request bodies or headers disappear before they reach Lambda?
Body and header problems usually come from the gateway altering the request or from the function expecting a format it does not receive. Confirm the Content-Type and Content-Length headers are passed unchanged, and check that no plugin on the route modifies the body. Some headers, including authentication headers, may be consumed or replaced by plugins, so verify which headers the function receives by logging the event. Binary payloads need the correct encoding handling in the function, and API Gateway proxy integrations expect a specific response shape, so a handler that returns a raw object instead of the expected status, headers and body will fail in ways that look like gateway errors.
What happens when the Lambda access keys expire or rotate?
Requests fail with authorization errors once the credentials APISIX holds are deactivated or deleted, and they continue to fail until the new values are loaded. Inventory every route that uses the aws-lambda plugin, record which IAM user or role and key each one uses, and confirm where those values are stored. Rotation should be planned as a change with a test call against each route after the update. Where the credentials are stored in configuration, confirm how the update reaches the gateway, and whether it requires a reload. Ask your team whether IAM roles or short-lived credentials are an option for your environment, since they reduce the number of long-lived keys that need rotation.
Should I put API Gateway or the Lambda function URL behind APISIX at all?
Put APISIX in front of Lambda when you need a single entry point for several backends, consistent authentication and rate limiting across services, or self-hosted control over the gateway layer. If the function has no other consumers and AWS already provides the controls you need, adding a gateway adds a component to run, patch and monitor, along with a second place where timeouts and credentials must be managed. A useful test is to list the policies you need at the edge, then check whether they are already available in the AWS service. Scope and cost depend on the number of routes, the authentication model and the operating model your team can support.
Common Lambda integration errors and fixes
This table pairs the errors teams most often see when APISIX calls Lambda through the aws-lambda plugin with the likely cause and a check to run. Read each row from the observed symptom, confirm the cause with the listed check, then apply the fix. Most failures trace back to the service setting, the signing region, or the permissions on the function.
| Symptom | Likely cause | Check and fix |
|---|---|---|
| Function URL returns an authorization or signature error | The plugin's service is still set to the default execute-api value, which is meant for API Gateway endpoints | Set service to lambda in the aws-lambda plugin configuration when calling a function URL, then reload the route and retest |
| Signature mismatch or invalid credential scope error from the Lambda endpoint | The region in the plugin does not match the region of the function URL or API Gateway endpoint | Compare the region in the endpoint hostname with the region field in the plugin, and correct the field so both match |
| 403 access denied when invoking the function with valid credentials | The IAM principal behind the access keys lacks permission to invoke the function | Check the principal's policy for lambda:InvokeFunctionUrl or lambda:InvokeFunction on the function ARN, and confirm the function URL auth type |
| 401 or 403 from API Gateway with an API key from APISIX | The API key is missing from the request APISIX sends, is disabled, or belongs to a usage plan not attached to the stage | Confirm the key is attached to a usage plan for the deployed stage, is enabled, and that the apikey header reaches the upstream call |
| 504 or gateway timeout returned to the client | The function runs longer than the timeout set on the APISIX route or upstream, or the Lambda timeout is shorter than the work | Compare the APISIX timeout with the Lambda function timeout and the function's typical duration in its logs, then raise the lower value to a justified level |
| Requests reach the function with the wrong path | Path forwarding is not configured as the function or API Gateway expects, so the route prefix is passed along | Review the APISIX route URI and any rewrite rules, then check the event path the function receives in its logs and adjust the rewrite |
| Plugin fails to load or returns a generic upstream error | The aws-lambda plugin is not enabled in the APISIX configuration, or the access keys are unresolved | Check the APISIX error log for the plugin name, confirm it is enabled, and verify each key reference resolves in the running environment |
Questions teams ask before outsourcing a Lambda gateway
Does putting APISIX in front of Lambda cost more than calling functions directly?
The answer depends on what the gateway replaces, not on the gateway alone. APISIX itself is licensed under Apache-2.0, so the software carries no license fee, but you pay for the compute that runs the gateway, the etcd cluster in traditional or decoupled mode, and the engineering time to build and operate it. Ask any partner to split the quote into one-time work (design, route build, auth setup, testing, handover) and recurring work (upgrades, patching, monitoring, on-call support). If the gateway only forwards requests to one function, a direct function URL with its own auth may be cheaper to run.
What drives the effort and cost of a Lambda gateway project?
Effort scales with four factors: the number of routes, the authentication model, the number of environments, and how much APISIX experience your team already has. Each route needs a path mapping, an upstream definition, and tests. Each auth model (API keys, IAM SigV4, JWT or OpenID Connect) adds configuration and consumer design. Every extra environment repeats the pipeline work. A team new to APISIX will spend more time on configuration review and operational runbooks. Ask the quote to list these four factors with counts so you can compare scopes.
How long does a Lambda gateway engagement take?
Duration depends on the agreed scope, so there is no standard figure to quote here. A scope with a few routes, one auth model and one environment is much shorter than a scope covering dozens of functions, several identity providers and separate staging and production estates. Engagements are fixed-scope, so the written scope should state the milestones, the deliverables for each one, and the dependencies on your AWS and identity teams. Ask for a timeline tied to those milestones rather than a single end date.
What must our team provide before the work starts?
Start with access and inventory. The team needs an AWS account or role with permission to read Lambda function configuration, function URLs or API Gateway stages, and IAM policies used for signing. You also need a function inventory with names, runtimes, expected payloads, timeouts and owners. If authentication uses your identity provider, you need an admin or app owner who can register the gateway as a client and confirm token claims. Agree on the network path from APISIX to AWS, since that determines how the gateway reaches the endpoints.
Can our own engineers build this without a partner?
Yes, if the team has someone who knows APISIX configuration, AWS IAM and the identity provider in use. The aws-lambda plugin is documented and the configuration keys are straightforward, so a small proof of concept is a reasonable first step. The risk sits in the parts that are easy to miss: SigV4 signing with the correct service value, timeout alignment between the gateway and Lambda, and securing the Admin API and etcd. Decide before starting who will own upgrades and on-call response. A partner is most useful when those ownership questions have no clear internal answer.
When is an API gateway the wrong choice for serverless functions?
A gateway adds a hop, a configuration surface and a component to patch. It is the wrong choice when you have a single function with simple API Gateway or function URL access and no need for shared authentication, rate limits or routing across services. It also fits poorly when your traffic is mostly internal and already protected by IAM roles, or when the team has no capacity to run another production component. A gateway earns its place when several services need one policy point, when you must keep the same routes across clouds or on-premises services, or when you need plugins that AWS-native tools do not cover in your environment.
Which AWS endpoint should we call, a function URL or API Gateway?
Use the plugin's service setting to match the endpoint type. The aws-lambda plugin calls either a Lambda function URL or an Amazon API Gateway endpoint. For function URLs, set service to lambda. API Gateway endpoints use the default execute-api. Authentication also differs: API Gateway endpoints can use an API key, while IAM access keys signed with AWS Signature Version 4 work with either target. Before choosing, confirm with your AWS administrators which authorization model they already audit, since the choice affects how keys are issued and rotated. The aws-lambda plugin documentation lists the exact settings to confirm.
How DeployOpen scopes and delivers the Lambda integration
DeployOpen plans, builds, tests and hands over Apache APISIX in front of AWS Lambda functions inside your own AWS accounts and network. We start with a written scope that fixes which functions, routes and authentication methods are covered, then build and verify the integration in your environment before your team takes it over.
How we scope
- Inventory each Lambda function, its trigger type, and whether it exposes a function URL or an Amazon API Gateway endpoint
- Decide per route whether APISIX signs requests with IAM SigV4 or forwards an API Gateway API key, and record the reason
- Agree in writing which functions, routes, timeouts and environments are in scope before any work starts
How we build
- Configure the aws-lambda plugin with the correct service value, using lambda for function URLs and execute-api for API Gateway
- Set up IAM roles or access keys with least-privilege policies, and keep credentials out of route definitions in etcd or files
- Test path forwarding, timeout behavior and error responses against each function in a non-production environment first
How we hand over
- Document the route map, authentication design, timeout settings and the IAM policies each route depends on
- Run a walkthrough with your platform and security teams covering rollback steps and how to add a new function
- Deliver configuration in a form your team can keep under version control and review through its normal change process
How we support
- Plan upgrades of APISIX and the aws-lambda plugin as a separate, tested change tied to your release calendar
- Offer ongoing support, upgrades and continuous testing as a retainer, sized to the scope agreed with you
- Confirm with your AWS and APISIX teams which quotas, cold start behavior and plugin versions apply to your deployment

