<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Lambda on David Lang</title>
    <link>https://www.davidlang.tech/tags/lambda/</link>
    <description>Recent content in Lambda on David Lang</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Tue, 03 May 2022 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.davidlang.tech/tags/lambda/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Serverless Architecture with AWS Lambda</title>
      <link>https://www.davidlang.tech/posts/serverless-architecture-with-aws-lambda/</link>
      <pubDate>Tue, 03 May 2022 00:00:00 +0000</pubDate>
      <guid>https://www.davidlang.tech/posts/serverless-architecture-with-aws-lambda/</guid>
      <description>&lt;p&gt;Serverless lets you run code without provisioning servers. AWS Lambda executes functions in response to HTTP, queue, or schedule events-you pay per invocation.&lt;/p&gt;&#xA;&lt;h2 id=&#34;handler-example&#34;&gt;Handler Example&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;exports.handler &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;async&lt;/span&gt; (event) =&amp;gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#268bd2&#34;&gt;const&lt;/span&gt; body &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; JSON.parse(event.body &lt;span style=&#34;color:#719e07&#34;&gt;||&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#39;{}&amp;#39;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#268bd2&#34;&gt;const&lt;/span&gt; result &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;await&lt;/span&gt; processOrder(body);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#719e07&#34;&gt;return&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    statusCode&lt;span style=&#34;color:#719e07&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;200&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    headers&lt;span style=&#34;color:#719e07&#34;&gt;:&lt;/span&gt; { &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#39;Content-Type&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#39;application/json&amp;#39;&lt;/span&gt; },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    body&lt;span style=&#34;color:#719e07&#34;&gt;:&lt;/span&gt; JSON.stringify(result),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  };&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;architecture-patterns&#34;&gt;Architecture Patterns&lt;/h2&gt;&#xA;&lt;p&gt;API Gateway + Lambda for REST endpoints. S3 triggers for image processing. EventBridge for scheduled jobs. Keep functions small and cold-start aware-choose appropriate memory and runtime (Node 20).&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
