<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>AWS on doug.sh</title>
    <link>https://doug.sh/categories/aws/</link>
    <description>Recent content in AWS on doug.sh</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 18 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://doug.sh/categories/aws/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Route53 as a Key Value Store, 2026 Edition</title>
      <link>https://doug.sh/posts/route53-as-a-key-value-store-2026-edition/</link>
      <pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://doug.sh/posts/route53-as-a-key-value-store-2026-edition/</guid>
      <description>&lt;h1 id=&#34;five-years-later&#34;&gt;Five Years Later &lt;a href=&#34;#five-years-later&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;Back in 2021 I &lt;a &#xA;    href=&#34;https://doug.sh/posts/route53-keyvalue-store/&#34;&#xA;    &#xA;    &#xA;    &#xA;&gt;&#xA;    wrote about using Route53 Private Hosted Zone TXT records as a key-value store for GitHub Actions&#xA;&lt;/a&gt;. The trick is still good in 2026 — Route53 is cheap, durable, globally replicated, and you almost certainly already have an AWS account. I still use it.&lt;/p&gt;&#xA;&lt;p&gt;But the &lt;em&gt;implementation&lt;/em&gt; in that post has aged badly. Two things in particular:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It authenticates with long-lived &lt;code&gt;AWS_ACCESS_KEY_ID&lt;/code&gt; / &lt;code&gt;AWS_SECRET_ACCESS_KEY&lt;/code&gt; repo secrets. In 2026, that&amp;rsquo;s malpractice. GitHub OIDC for AWS shipped in late 2021 — a few weeks after the original post — and there&amp;rsquo;s no good reason to keep static AWS keys in a GitHub repo anymore.&lt;/li&gt;&#xA;&lt;li&gt;The Get action ends with &lt;code&gt;echo &amp;quot;::set-output name=value::$VALUE&amp;quot;&lt;/code&gt;. That workflow command was deprecated in October 2022 and disabled by default in 2023. &lt;strong&gt;The original Get action no longer works on a current &lt;code&gt;ubuntu-latest&lt;/code&gt; runner.&lt;/strong&gt; Embarrassing, but here we are.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;There are a few smaller polish items too — fragile quote-stripping with &lt;code&gt;tr&lt;/code&gt;, a &lt;code&gt;payload.json&lt;/code&gt; file written to disk, no escaping if your value happens to contain a &lt;code&gt;&amp;quot;&lt;/code&gt;. Let&amp;rsquo;s fix all of it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Route53 as a Key Value Store in GitHub Actions</title>
      <link>https://doug.sh/posts/using-route53-as-a-key-value-store-in-github-actions/</link>
      <pubDate>Mon, 13 Dec 2021 00:00:00 +0000</pubDate>
      <guid>https://doug.sh/posts/using-route53-as-a-key-value-store-in-github-actions/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;2026 update:&lt;/strong&gt; &lt;a &#xA;    href=&#34;https://doug.sh/posts/route53-keyvalue-store-2026/&#34;&#xA;    &#xA;    &#xA;    &#xA;&gt;&#xA;    a modernized version of this post is here&#xA;&lt;/a&gt; — uses OIDC instead of static AWS keys and fixes the deprecated &lt;code&gt;::set-output&lt;/code&gt; syntax that broke the Get action on current runners.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h1 id=&#34;the-need&#34;&gt;The Need &lt;a href=&#34;#the-need&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;GitHub Actions is great, but one thing it’s missing is a form of persistence, or simple key-value store. Sure, you could persist to a git repo - and that might be the right move, depending on the use case. But, what if you just want to store a string or two that you&amp;rsquo;ll need later?&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
