Exercise 3: Why Bindings Are More Declarative Than Manual SDK Calls — Possible Solution ==================================================================== A Lambda function reading from a queue and writing to a database typically does so by manually instantiating an AWS SDK client inside the function's own code, authenticating that client, and explicitly issuing the read and write calls as real, imperative code the developer writes step by step -- the function's code itself is directly responsible for HOW the connection to each service actually happens. An Azure Function using an input binding for the queue and an output binding for the database instead simply DECLARES what it needs -- "this parameter should receive the next queue message" and "this return value should be written to this specific database" -- in a configuration (like a function.json bindings block, or via attributes/annotations). The Azure Functions runtime itself handles the actual connection, authentication, and data transfer mechanics behind the scenes; the function's own code just works with plain parameters and return values, with no explicit SDK client construction or connection management visible in the function's own logic at all. ANSWER: The binding-based approach is more declarative because the function's own code states WHAT data it needs and WHERE it should go, without describing HOW that connection is actually established -- the Azure Functions runtime handles the underlying SDK calls and connection details automatically. The Lambda-with-manual-SDK-clients approach is imperative instead, since the function's own code must explicitly write out every step of connecting to, authenticating with, and calling each service itself. WHY THIS WORKS AS AN ANSWER ------------------------------ This correctly draws the real distinction between declarative ("what") and imperative ("how") approaches at the level of the function's own code, rather than simply asserting bindings are "easier" without explaining the actual structural difference -- and matches the chapter's own explicit example showing a function receiving an httpTrigger's data and returning a value with zero visible Storage SDK client code.