CertCrack

AWS Developer Associate · DVA-C03

DVA-C03 Practice Exam: 700 Questions with Explanations

Preparing for the AWS Certified Developer – Associate (DVA-C03) certification? CertCrack gives you 700 original practice questions mapped to the official DVA-C03 exam guide — development with AWS services (30%), security (26%), testing and deployment (22%), and troubleshooting and optimization (22%). Every question includes a detailed explanation so you learn the why, not just the answer. Registration for the real DVA-C03 exam opens on 1 December 2026, and DVA-C02's last day is 30 November 2026 — so start preparing now and be ready to book on day one.

What's inside

Try 30 sample questions

These are real samples from the DVA-C03 bank — the full version has 700 like these.

1. A developer is building a Lambda function for a billing platform. The function generates PDF invoices and writes them to an S3 bucket. Compliance requires that the function hold no long-term credentials and be able to write only to that one bucket. What is the MOST secure way to configure this?

  1. Create an IAM execution role with a policy that allows s3:PutObject only on the invoice bucket and attach the role to the function
  2. Create an IAM user for the application, store its access keys in a plaintext environment variable, and rotate them monthly
  3. Attach the AmazonS3FullAccess managed policy to the function's execution role so future buckets work without changes
  4. Embed the account root credentials in the deployment package so the function always has access
Correct answer: A. Correct: An execution role gives the function short-lived credentials through STS, and a policy scoped to s3:PutObject on the single bucket follows least privilege. Why others are wrong: access keys in a plaintext environment variable are long-term credentials that anyone with console or code access can steal; AmazonS3FullAccess grants write access to every bucket in the account, far beyond the requirement; root credentials in the package are never acceptable and expose the entire account.

2. A Lambda function that processes orders must also run inside a VPC to reach a private RDS database. After the developer attaches the function to private subnets, calls from the function to the public DynamoDB API start timing out. What should the developer do to restore DynamoDB access with the least operational overhead?

  1. Move the function out of the VPC and connect to RDS over the public internet
  2. Create a NAT gateway in a public subnet and route the private subnets' internet-bound traffic through it
  3. Add a gateway VPC endpoint for DynamoDB to the route tables of the private subnets
  4. Give each private subnet a public IP range so the function can reach AWS APIs directly
Correct answer: C. Correct: A gateway VPC endpoint for DynamoDB is free, highly available, and routes DynamoDB traffic privately without leaving the AWS network. Why others are wrong: moving the function out of the VPC breaks the requirement to reach the private database and exposes traffic publicly; a NAT gateway works but adds hourly and data-processing cost plus management overhead when an endpoint solves it directly; private subnets cannot simply be given public addressing, and instances/functions in them still need NAT or endpoints.

3. A developer needs to share a set of utility libraries and a custom JSON-parsing binary across twelve Lambda functions written by different teams. The shared code changes about once a month and must be deployable independently of each function. Which approach meets these requirements?

  1. Copy the libraries into every function's deployment package and redeploy all twelve on each change
  2. Package the shared code as a Lambda layer and attach the layer version to each function
  3. Store the libraries in an S3 bucket and download them to /tmp on every cold start
  4. Merge the twelve functions into one large function that contains all the shared code
Correct answer: B. Correct: Lambda layers are designed for sharing code and binaries across functions, are versioned independently, and functions pick up a new layer version when updated. Why others are wrong: copying code into every package duplicates the code and forces twelve redeployments per change; downloading from S3 at cold start adds latency and failure modes and loses the code if /tmp is reclaimed; merging functions destroys team boundaries and independent scaling.

4. A retail company's Lambda function validates shopping carts. During flash sales, bursts of invocations overwhelm a downstream inventory API that can only handle 200 concurrent calls. The developer must cap the function's concurrency while still accepting events. Which configuration achieves this?

  1. Set the function's reserved concurrency to 200
  2. Set the function's provisioned concurrency to 200
  3. Lower the function's memory allocation so each invocation runs more slowly
  4. Reduce the account-level concurrency quota through a Service Quotas request
Correct answer: A. Correct: Reserved concurrency sets a maximum number of simultaneous executions for that function, guaranteeing both a cap and a reserved pool. Why others are wrong: provisioned concurrency pre-warms environments to remove cold starts but does not cap total concurrency; lowering memory slows execution but does not bound simultaneous calls and hurts latency; the account quota affects all functions in the Region and cannot target this function's downstream limit.

5. A Java Lambda function that serves a customer-facing API has unacceptable cold-start latency because of heavy framework initialization. The team cannot rewrite the application. Which feature MOST directly reduces the initialization latency?

  1. Increase the function's memory allocation to its maximum
  2. Enable Lambda SnapStart for the function
  3. Move the function to a container image deployment
  4. Place the function inside a VPC with enhanced networking
Correct answer: B. Correct: SnapStart takes a snapshot of the initialized execution environment and restores functions from it, cutting Java startup latency dramatically without code rewrites. Why others are wrong: more memory adds CPU during execution but initialization still runs on every cold start; container images do not remove JVM/framework initialization and can start slower; VPC attachment has no effect on initialization time.

6. A Lambda function triggered by SQS must process each message, but occasionally a single malformed message causes the entire batch of ten to be retried and reprocessed. The developer wants only the failed messages returned to the queue. How should the function be configured?

  1. Reduce the SQS batch size to 1 in the event source mapping
  2. Enable partial batch responses on the SQS event source mapping and return the message IDs of only the failed items
  3. Set the queue's visibility timeout to zero so failures are visible immediately
  4. Configure a dead-letter queue on the function and let Lambda move the whole batch there
Correct answer: B. Correct: With the partial batch response feature (ReportBatchItemFailures), the function returns only the IDs of failed messages, and Lambda deletes the successful ones while the failures become visible again. Why others are wrong: a batch size of 1 works but destroys batching efficiency; a zero visibility timeout causes duplicates and runaway retries for all messages, not just failures; a function-level DLQ receives the entire failed batch/event after retries, not just the bad message.

7. A developer is choosing how to expose a new Lambda function as an HTTPS endpoint for an internal tool. The tool needs simple request/response behavior, its own custom domain, and the lowest cost, and does not need request validation, usage plans, or API keys. Which option is the best fit?

  1. Create a REST API in API Gateway with a Lambda proxy integration
  2. Create a Lambda function URL and map the custom domain to it
  3. Create a WebSocket API in API Gateway for persistent connections
  4. Put an Application Load Balancer in front of the function with a Lambda target group
Correct answer: B. Correct: A Lambda function URL is a dedicated HTTPS endpoint for a single function at no extra charge, and a custom domain can be mapped through Route 53/CloudFront or an ALB-free setup, matching the simple requirements. Why others are wrong: a REST API adds cost and features the tool does not need; WebSocket APIs are for two-way persistent connections, not simple request/response; an ALB adds hourly cost and another layer of management for a single function.

8. A data-processing Lambda function downloads a 700 MB reference dataset at startup and needs scratch space for intermediate files larger than the default ephemeral storage allows. What should the developer configure?

  1. Increase the function's /tmp ephemeral storage allocation, up to 10 GB
  2. Write intermediate files to the function's read-only deployment directory
  3. Mount the function's own zip package as a writable file system
  4. Store all intermediate files as Lambda environment variables
Correct answer: A. Correct: Lambda lets you configure ephemeral storage between 512 MB and 10,240 MB, which is mounted at /tmp and is the supported scratch space. Why others are wrong: the deployment package directory is read-only at runtime; the zip package cannot be mounted as writable storage; environment variables are limited to 4 KB in total and are for configuration, not file storage.

9. A developer notices a Python Lambda function is CPU-bound when compressing files: execution time barely drops when the timeout is raised, but billing duration is high. Which change will MOST improve its performance?

  1. Increase the function's configured memory, which proportionally increases allocated CPU
  2. Decrease the memory so the function is throttled into running longer batches
  3. Split the function into ten chained functions that each compress part of the file
  4. Enable Lambda SnapStart to warm the compression libraries
Correct answer: A. Correct: Lambda allocates CPU in proportion to configured memory, so raising memory speeds CPU-bound work and can even lower total cost by shortening duration. Why others are wrong: decreasing memory reduces CPU and lengthens execution; chaining functions adds orchestration complexity and the per-function CPU limit remains; SnapStart targets Java initialization latency, not steady-state CPU throughput of a Python function.

10. A nightly reconciliation job written as a single Lambda function now needs to run for about 40 minutes and includes pauses where it waits for an external approval. Which approach should the developer take?

  1. Raise the Lambda timeout above 15 minutes by requesting a quota increase
  2. Split the job into steps orchestrated by AWS Step Functions, with Lambda functions performing each task
  3. Run the Lambda function recursively so each invocation restarts the timer
  4. Keep the job in Lambda but store progress in environment variables between invocations
Correct answer: B. Correct: Lambda invocations are capped at 15 minutes, so long-running work with waits belongs in Step Functions, which orchestrates short Lambda tasks and can wait for approvals with callback task tokens. Why others are wrong: the 15-minute timeout is a hard limit that cannot be raised by quota request; recursive invocations are an anti-pattern Lambda actively detects and can loop or lose state; environment variables do not persist reliably between execution environments.

11. A developer must deploy a Lambda function whose dependency stack is 6 GB, far above the zip deployment limit. Which deployment method supports this with the LEAST change to the team's workflow?

  1. Split the zip into several functions that share variables through Parameter Store
  2. Deploy the function as a container image stored in Amazon ECR
  3. Compress the dependencies with a Lambda layer stack of five layers
  4. Base64-encode the package and pass it as an environment variable
Correct answer: B. Correct: Lambda container images support images up to 10 GB stored in ECR, which fits the 6 GB dependency stack using a familiar Docker workflow. Why others are wrong: splitting the function changes the architecture and still leaves oversized dependencies; layers are limited to 250 MB of unzipped content in total across up to five layers; environment variables are capped at 4 KB total and cannot carry a package.

12. EXHIBIT — A payments team reviews the configuration of a production Lambda function and its recent behavior: Function configuration: Memory 128 MB; Timeout 3 seconds; Runtime: Python 3.12; Handler performs JSON parsing of large payloads, three sequential calls to an internal pricing API, and writes results to DynamoDB. Observed behavior: p50 duration 2,850 ms; frequent DurationExceeded timeouts at peak; CPU utilization reported as saturated; error rate rises with payload size. The team can change ONE setting first and wants the change most likely to remove the timeouts. Which change should they make?

  1. Increase the memory allocation to 1,024 MB
  2. Increase the timeout to 15 minutes
  3. Move the function into a VPC
  4. Enable provisioned concurrency with 20 units
Correct answer: A. Correct: At 128 MB the function gets a small fraction of a vCPU, and Lambda scales CPU with memory; the saturated CPU and durations hugging the 3-second ceiling show a CPU-starved function, so raising memory directly cuts execution time. Why others are wrong: raising the timeout to 15 minutes only lets slow executions run longer at higher cost without fixing the cause; VPC attachment does not change CPU or duration; provisioned concurrency removes cold starts, but these are warm executions timing out under load.

13. A Lambda function is invoked asynchronously to generate reports. When the downstream report service is down for an hour, all events from that hour are lost because retries are exhausted. The developer must ensure failed asynchronous invocations are preserved for later reprocessing. What should be configured?

  1. A dead-letter queue (SQS queue or SNS topic) on the function for failed asynchronous events
  2. A higher reserved concurrency so retries happen faster
  3. Synchronous invocation from the caller so errors surface immediately
  4. Lambda destinations on success only, writing to an S3 bucket
Correct answer: A. Correct: For asynchronous invocations, a dead-letter queue captures events that fail after Lambda's built-in retries so they can be inspected and reprocessed. Why others are wrong: higher reserved concurrency does not extend the retry window or preserve failed events; changing callers to synchronous invocation alters the architecture and shifts retry responsibility to every caller; on-success destinations do nothing for the failed events that are being lost.

14. A developer's Lambda function creates a new database connection inside the handler on every invocation, causing connection storms during bursts. Which coding pattern fixes this with the least effort?

  1. Move connection creation outside the handler so it is created once per execution environment and reused across invocations
  2. Store the connection object in an S3 bucket and fetch it for each request
  3. Force a cold start before each invocation by publishing a new function version
  4. Increase the database's maximum connection limit to absorb the storm
Correct answer: A. Correct: Code outside the handler runs once when the execution environment initializes, and warm environments reuse it, so clients and connections defined there are shared across invocations. Why others are wrong: connections are live network objects and cannot be serialized into S3; deliberately forcing cold starts makes the problem worse; raising database limits treats the symptom and can be expensive or impossible at scale.

15. A healthcare application stores configuration in Lambda environment variables, but the combined size of the values now exceeds the 4 KB limit. The values include a database connection string that must stay encrypted. What should the developer do?

  1. Compress the environment variables with gzip before setting them
  2. Move the configuration to AWS Systems Manager Parameter Store or Secrets Manager and retrieve it at runtime with caching in the function
  3. Split the configuration across two Lambda functions that call each other
  4. Store the values in the function's tags instead of environment variables
Correct answer: B. Correct: Parameter Store and Secrets Manager are built for externalized configuration and secrets, support encryption with KMS, and the function can cache retrieved values outside the handler to limit API calls. Why others are wrong: Lambda does not decompress environment variables for you, and the 4 KB limit applies to the stored values; splitting functions complicates the design without removing the limit; tags are metadata for resource management, limited in size, and not readable as runtime configuration in the same way.

16. A developer wants a Lambda function to process very large product-catalog files (up to 2 GB) that several other services also need to read and update concurrently. Which storage option fits Lambda's model best?

  1. Mount an Amazon EFS file system to the function and process the files in place
  2. Use the function's /tmp storage and accept that other services cannot see the files
  3. Store the files in DynamoDB items split into 400 KB chunks
  4. Keep the files in the deployment package and rebuild it for each update
Correct answer: A. Correct: Lambda supports mounting EFS, giving functions a shared, persistent file system that scales to gigabytes and is accessible concurrently by other services. Why others are wrong: /tmp is private to an execution environment and not shared; DynamoDB items are limited to 400 KB and chunking large files is fragile and slow; rebuilding the deployment package for data updates conflates code and data and cannot support concurrent writers.

17. A public API backed by Lambda returns recommendation payloads of up to 20 MB. Clients complain that responses are buffered and arrive all at once, and some large responses fail. Which Lambda feature addresses this?

  1. Lambda response streaming, which progressively streams the response to the client
  2. Raising the function's memory so the payload is generated faster
  3. Returning the payload as a base64 string inside a JSON envelope
  4. Increasing the API payload quota for the account through Service Quotas
Correct answer: A. Correct: Lambda response streaming lets the function write the response progressively, improving time-to-first-byte and supporting payloads up to 200 MB, which fits the 20 MB responses. Why others are wrong: more memory speeds generation but the response is still buffered and subject to the standard 6 MB payload limit; base64 encoding inflates the payload by about a third and keeps the limit problem; the synchronous payload limit is not a customer-adjustable quota.

18. A developer invokes a Lambda function synchronously from a mobile backend and passes a 9 MB document for analysis. The invoke calls fail with a payload size error. What is the recommended pattern?

  1. Split the document into 6 MB chunks and invoke the function once per chunk
  2. Upload the document to S3 and pass the bucket and key in a small event payload for the function to fetch
  3. Compress the document with base64 encoding before sending it
  4. Switch the function to a container image so payload limits no longer apply
Correct answer: B. Correct: The claim-check pattern — storing the large payload in S3 and passing a reference — is the standard way around Lambda's 6 MB synchronous request payload limit. Why others are wrong: chunking creates ordering and reassembly complexity and partial-failure headaches; base64 increases size by roughly 33 percent, making the error worse; the payload limit applies to the invocation API regardless of whether the function is a zip or container deployment.

19. A fintech team must prove that only Lambda code they built and approved runs in production. They need Lambda to verify a signature before deploying function code. Which feature provides this?

  1. Lambda code signing with AWS Signer, configured to reject unsigned deployments
  2. VPC endpoints for the Lambda API so deployments stay on the private network
  3. Lambda layers with version pinning so old code cannot change
  4. S3 Versioning on the bucket that stores deployment packages
Correct answer: A. Correct: Lambda code signing uses AWS Signer signing profiles and a code signing configuration that checks signatures at deployment time and can warn or enforce rejection of unsigned code. Why others are wrong: VPC endpoints control network paths, not code authenticity; layer pinning controls dependency versions, not who built the function code; S3 Versioning preserves old packages but does not verify signatures.

20. A developer troubleshooting a Lambda function notices the same SQS message being processed repeatedly and suspects the function is calling itself indirectly through an S3 notification chain, creating a runaway loop. Which Lambda capability helps stop this class of problem, and what should the developer also do? (Select the best single answer.)

  1. Use Lambda's recursive loop detection, which stops invocations in supported service chains, and redesign the chain to break the cycle
  2. Disable the function's execution role so the loop cannot continue
  3. Set the function's reserved concurrency to zero permanently and delete its event source mappings so no trigger can ever restart the loop
  4. Turn off CloudWatch Logs so the loop is no longer visible
Correct answer: A. Correct: Lambda includes recursive loop detection for common patterns involving services such as SQS, Lambda, and S3, and can stop runaway invocations, but the durable fix is redesigning the event chain so outputs cannot re-trigger the same function unintentionally. Why others are wrong: removing the execution role breaks the function entirely and is not a fix; zero reserved concurrency disables the function permanently rather than correcting the design; disabling logs only hides the symptom while the loop keeps running and billing.

21. A developer wants to minimize cost for a CPU-bound Lambda function by choosing the right memory setting. Which reasoning is CORRECT?

  1. 10,240 MB, because maximum CPU always finishes the work fastest, and the shortest possible duration always produces the lowest overall bill
  2. The smallest memory of 128 MB, because it carries the lowest per-GB-second rate and the lowest possible charge for each invocation
  3. Provisioned concurrency, because pre-warmed environments make invocations free of duration charges and remove any need to tune memory
  4. An intermediate setting such as 1,769 MB (one full vCPU), because cost is memory multiplied by duration and added CPU shortens the duration
Correct answer: D. Correct: Because Lambda charges per GB-second and faster execution shortens duration, both configuration points are testable — the 1,769 MB point (one full vCPU) is a common sweet spot for CPU-bound work. Why others are wrong: 10,240 MB maximizes CPU but also multiplies the per-millisecond price, often raising cost; the smallest memory minimizes the rate but stretches duration enough to cost more overall; provisioned concurrency removes cold starts but does not change per-invocation compute pricing.

22. A Java application uses Lambda SnapStart. After enabling it, sessions intermittently fail because every restored environment presents the same cached access token. What is the correct fix for SnapStart-based functions?

  1. Hard-coding database credentials so no network call is needed at restore
  2. Embedding the current timestamp in a static variable initialized before the snapshot
  3. Declaring all variables static so they can never change after restore
  4. Using the after-restore runtime hook to refresh values that must be unique per environment, such as credentials fetched at runtime
Correct answer: D. Correct: SnapStart restores a snapshot of an already-initialized environment, so initialization hooks that must run per unique environment (like fetching per-host secrets) belong in after-restore hooks. Why others are wrong: static values such as file handles are restored from the snapshot; timestamps embedded 'before snapshot' are stale after restore; hardcoded credentials are insecure regardless of SnapStart.

23. A team is migrating its client applications to IPv6-only networking. The clients invoke an AWS Lambda function over the internet, and the team needs those invocations to work over IPv6 without changing the function code. Which Lambda capability supports this scenario?

  1. Deploy the function behind CloudFront Functions instead
  2. Use S3 as an intermediary to carry requests to the function
  3. Invoke the function through its dual-stack endpoint name so IPv6 clients can reach it
  4. Move the workload to a Region that has no IPv4-only services
Correct answer: C. Correct: Lambda supports dual-stack (IPv4/IPv6) endpoints for invoking functions and for the function control plane, letting VPC workloads use IPv6 addressing where configured. Why others are wrong: CloudFront Functions are edge JavaScript handlers with a different runtime and limits, not an IPv6 access mechanism for Lambda; S3 is not a network path to invoke functions; switching regions does not enable IPv6 for the API.

24. A Lambda function consumes an SQS queue that carries many event types, but the function only cares about 'order.shipped' events; it still gets invoked for every batch. How can the developer reduce wasted invocations without adding code?

  1. Filtering records inside the handler as the first line of code
  2. A dead-letter queue on the source queue
  3. Reducing the event source batch size to 1
  4. Event filtering patterns on the event source mapping
Correct answer: D. Correct: Event filtering on SQS, DynamoDB Streams, and Kinesis mappings filters records before invocation, so Lambda is only invoked (and billed) when matching records arrive. Why others are wrong: filtering inside the handler prevents downstream work but the function is still invoked and billed for every batch; DLQs act on failed messages, not irrelevant ones; reducing batch size increases invocation count and cost.

25. A developer sets a Lambda function's timeout to 25 minutes for a video analysis task and finds the setting rejected. Which statement is TRUE?

  1. Request a Service Quotas increase for the function timeout
  2. Switch the function from a zip package to a container image
  3. The timeout cannot exceed 15 minutes; redesign the job as shorter steps, for example with Step Functions
  4. Enable provisioned concurrency so the function is allowed to run longer
Correct answer: C. Correct: Lambda's maximum timeout is 15 minutes for every function; jobs that run longer or must pause belong in Step Functions or on compute services like Fargate. Why others are wrong: quota increases cannot raise the timeout past 15 minutes; container images share the same 15-minute limit as zip deployments; provisioned concurrency affects cold starts and reserved capacity, not the timeout ceiling.

26. A developer adds a scheduled ping every 5 minutes to keep a Lambda function warm, but users still see cold starts when a burst of 300 requests arrives. Why is the warm-up ineffective? (Select the best single answer.)

  1. The function's memory is too small for the warm-up to help
  2. Provisioned concurrency is already configured for the function, so the remaining issue is that callers use the wrong invocation type for bursts of traffic
  3. A burst of 300 concurrent requests needs roughly 300 execution environments, and one scheduled warm-up only ever warms a single environment
  4. The function is attached to a VPC, which blocks scheduled warm-up events from reaching it
Correct answer: C. Correct: The warm-up is doing nothing because Lambda scales the number of execution environments with concurrency; a concurrent burst of 300 requests creates hundreds of cold environments regardless of one warmed instance. Why others are wrong: memory size affects cold-start speed, not whether cold starts occur across many environments; provisioned concurrency must be provisioned at the expected concurrency level (300) to be warm for the burst; invocation type does not change the per-environment initialization model. A VPC attachment also does not explain it: scheduled invocations reach the function through the Lambda service API regardless of the function's network configuration.

27. A Lambda function renders customer statements. Profiling shows that most of the per-invocation time is spent loading and compiling a template file, even though the template changes only when code is redeployed. What is the most effective optimization?

  1. Increase memory to speed repeated compilation
  2. Schedule the function to restart hourly
  3. Fetch and compile the template from S3 inside the handler on each request
  4. Load and compile the template outside the handler at initialization time
Correct answer: D. Correct: Compiling the template once and re-evaluating it per request amortizes the expensive initialization across all invocations that reuse the environment, which is exactly what warm reuse is for. Why others are wrong: global S3 fetches of the template repeat the expensive I/O every cold start plus per-request downloads; larger memory does not remove redundant initialization work; scheduled restarts would force more cold starts, the opposite of the goal.

28. A payments Lambda function can be invoked more than once for the same order because its SQS trigger delivers at least once. The team wants a managed, low-code way to make handler execution idempotent. Which approach fits best?

  1. Configure the SQS redrive policy with maxReceiveCount of 1
  2. Turn on exactly-once delivery for the trigger in the Lambda console
  3. Use the Lambda Powertools idempotency utility backed by DynamoDB to record completed request keys and short-circuit duplicates
  4. Check the source IP address of each invocation and ignore repeats
Correct answer: C. Correct: Lambda Powertools is an AWS-maintained toolkit for Lambda that includes an idempotency utility designed exactly to make retried Lambda invocations safe. Why others are wrong: the SQS redrive policy governs queue retries, not handler-level idempotency; 'at-least-once delivery' is a delivery guarantee of the trigger, and Lambda cannot switch triggers to exactly-once; checking the caller IP does not identify retries reliably.

29. A suite of Lambda functions fronts an Aurora MySQL database. At peak, hundreds of execution environments each open their own connections and exhaust the database's connection limit. Which service should the developer place in front of the database?

  1. Store open connections in /tmp so later invocations reuse them
  2. Cache the database password in the function to avoid Secrets Manager calls
  3. Put Amazon RDS Proxy between the functions and the database so connection pooling is shared across execution environments
  4. Raise the function's reserved concurrency so fewer environments exist
Correct answer: C. Correct: RDS Proxy pools and multiplexes application connections, so thousands of Lambda environments share a small set of database connections, and IAM authentication keeps credentials out of the code path. Why others are wrong: caching connections in /tmp does not share them across environments; caching the password in memory still requires each environment to open its own connection; the connection limit is a database constraint the storm would still hit.

30. A developer wants better price-performance for a fleet of Python Lambda functions that have no compiled x86-specific dependencies. Which change does Lambda support?

  1. SnapStart must be disabled before switching architectures
  2. The function must be moved out of the VPC to run on Graviton
  3. API callers must be updated to send an architecture header with every request so Lambda can route the calls to Graviton processors
  4. Deploy the same code on arm64 by changing the function's architecture setting and rebuilding any native dependencies for arm64
Correct answer: D. Correct: arm64 (Graviton2) Lambda functions offer better price-performance for many workloads, and Lambda supports arm64 for both zip and container-image deployments including common Python runtimes. Why others are wrong: clients invoke the function the same way regardless of architecture; SnapStart is a Java-focused startup feature unrelated to CPU architecture; VPC support is identical for both architectures.

Get the complete book on Amazon

AWS Certified Developer – Associate (DVA-C03) Study Guide & Practice Questions by H.A.Addis — the study guide plus all 700 questions with full explanations and 10 performance-based questions, for the new exam launching December 1, 2026.

$12.99 · Kindle edition

Get the book on Amazon

The code printed inside the book unlocks the full DVA-C03 practice bank on certcrack.com — free, and it never expires.

Get full access

One payment unlocks the online question bank and the full PDF.

$10 · 3 months access

Get full access Also available on Udemy Download the free sample PDF (30 questions)

15-day money-back guarantee (before 25% of questions attempted). PDF downloads are non-refundable.

Exam facts: AWS Certified Developer – Associate (DVA-C03)

Frequently asked questions

How long do I get access?

Three months (90 days) from purchase, covering both the interactive online bank and the full PDF download. Access can be extended.

Is there a free trial?

Yes — a free 30-question sample quiz and a free sample PDF are available with no account required, so you can judge the quality before paying.

Are these questions like the real DVA-C03 exam?

All 700 questions are mapped to the official DVA-C03 exam objectives, written in the same style and difficulty as the real exam.

Can I study offline?

Yes. Your purchase includes the complete question bank as a downloadable PDF for offline study.

What is the refund policy?

Full access is refundable within 15 days, or before 25% of the questions have been attempted — whichever comes first. Downloaded PDFs are non-refundable.

When does registration for the DVA-C03 exam open?

Registration for AWS Certified Developer – Associate (DVA-C03) opens on 1 December 2026. The current version, DVA-C02, has its last day on 30 November 2026 — so prepare for DVA-C03 now and book as soon as registration opens.

How many questions are on the DVA-C03 exam?

65 questions — multiple choice and multiple response. 50 questions are scored and 15 are unscored trial questions, and you can't tell which is which during the exam.

What is the passing score for DVA-C03?

720 on AWS's scaled score range of 100 to 1,000. Scoring is compensatory — you need to pass the exam overall, not each section.

How long is the Developer Associate certification valid?

Three years. Before it expires, you recertify by passing the current version of the exam or a higher-level AWS exam.

Where can I practice for the DVA-C03 exam for free?

Right here on CertCrack. Start with the free 30-question sample quiz and the free sample PDF on this page — no account needed — and read the free DVA-C03 study guidebook. When you're ready for the full bank, this page gives you every practice question with detailed explanations for $10.

Get a free practice question every week

Join the list — one exam-style question with a full explanation, every week. No spam.