中身の入った S3 バケットの名前を、CloudFormation で変えようとする会

はじめに 問題提起 忙しい人向け 実際にやってみた まずは準備 本題 古いバケットは消えるのか 別にこれは隠れた仕様ではない まとめ はじめに こんにちは。 アプリケーションサービス部の保田(ほだ)です。 今日は AWS CloudFormation (以下、CloudFormati…

Amazon Aurora Serverless v1 を作り、そして v2 に変換するまでの道のり

はじめに 背景 前提 Aurora Serverless v1 のクラスターを作成 Aurora Serverless v1 のクラスターを Aurora Serverless v2 にアップグレードする 手順の概観 EngineMode を serverless から provisioned に Aurora バージョン 2 から Aurora バージョン 3 …

serverless-python-requirements の slim オプションを有効化するときの注意点

要約 serverless-python-requirements で設定値を変更した後は $ serverless requirements cleanCache を実行しておかないと変更が反映されないときがある。 そして、プロファイルごとに実行しよう。 はじめに こんにちは。アプリケーションサービス部の保田…

Cognito + API Gateway + Lambda で実行権限を動的に制御したい

はじめに 真面目な導入 元ネタ 状況設定 やりたいこと DynamoDB のテーブルを用意する Cognito User Pool を作る ユーザープールを作成する ユーザー作成 アプリクライアント作成 グループを作る Lambda 関数と API Gateway と Cognito Authorizer を作る se…

VPC Endpoint サポートされてないけど閉域から Cognito で認証したい!

追記: 2022/07/06(水)「技術的には可能だが、実装コストに見合うかは不明」というレベル感である旨を明記いたしました。 はじめに こんにちは。アプリケーションサービス部の保田(ほだ)です。 というわけで今回は VPC Endpoint がサポートされていない …

Zappa で内部 ALB を作成するまでの道のり

はじめに こんにちは。アプリケーションサービス部の保田(ほだ)です。 たまに Python 製の軽量サーバーレスアプリケーションのデプロイツールである Zappa を使う場面があるのですが、誰も Frank Zappa の話をしないので少し寂しいです。 ちなみに Pound f…

プライベート API Gateway にカスタムドメインを設定したい

はじめに こんにちは。アプリケーションサービス部の保田(ほだ)です。 最近二度寝にハマっています。安心して二度寝するために一度目は5時ぐらいに起きるのがポイントです。 そんな訳で今回はプライベート API に何とかしてカスタムドメインを割り当てる方…

DynamoDB のストレージ容量を自力で取得する方法が分かったかもしれない

はじめに こんにちは。アプリケーションサービス部の保田(ほだ)です。 最近 Future Funk なる音楽ジャンルにハマっており、仕事中 BGM としてずっと流しています。 というわけで今回は DynamoDB のストレージ容量を自力で算出することを試みます。 注意: …

CloudWatch Alarm でバッチ処理が起動していないときだけ通知したい!

はじめに 要約 導入 毎日ほぼ決まった時刻に外部から実行される Lambda 関数の Invocations メトリクスを監視したい だが、ちょっと待ってほしい 欠落データの扱い パターン 1. 欠落データを不正(しきい値を超えている)として処理 パターン 2. 欠落データ…

Provisioned Concurrency を設定した Lambda 関数を ALB にぶら下げるときの注意点

結論 Provisioned Concurrency は関数のバージョンではなくエイリアスに対して設定しよう ドキュメントにもあるように関数のエイリアスをロードバランサーのターゲットグループに登録しよう ロードバランサーが常に現行バージョンの Lambda 関数を呼び出せる…

pyenv global が効かなくなった(?)話

結論 pyenv global しても何も起きないときはこの警告がないか確認すべし( exec -l $SHELL とか実行する)。 WARNING: `pyenv init -` no longer sets PATH. Run `pyenv init` to see the necessary changes to make to your configuration. 出ていたら、以…

CloudShell でお手軽にシェル環境を立ち上げるぞ

はじめに こんにちは。技術4課の保田(ほだ)です。 健康診断を目前に控え、いつも家で穿いていたゆるっゆるのジャージのズボンから普通ぐらいのズボンに穿き替えたところお腹がキツキツだったのでとても焦っています。 冬本番で温かい鍋とか色々食べたいの…

pytest と moto で優勝する

はじめに 前提知識 導入 pytest moto 状況設定 テスト対象のコード テストメソッドを書く フィクスチャーを書く moto だ…! テストを実行してみる おまけ まとめ 参考 はじめに こんにちは、技術4課の保田(ほだ)です。 皆様は現在話題沸騰中の映画 TENET …

Python の例外を別の例外として投げるときの話

はじめに こんにちは。技術4課の保田(ほだ)です。 iOS14 へのアップデートをしたらかなり雰囲気が変わってビックリしています。 というわけで(?)今日は Python のお話です。 要約 raise 文には from が使えるぞ 本題 main 関数から呼び出されるある関数…

Serverless Framework で別リージョンの SNS トピックをサブスクライブする

こんにちは。技術4課の保田(ほだ)です。 最近 Uber Eats にお世話になり倒しています。 近くのユーザーと同時配達することで配送手数料が0円になるシステム、あれは素晴らしいと思います。 背景 さて突然ですが、 Lambda で別リージョンの Simple Notifica…

Serverless Framework で最大イベント経過時間と最大再試行回数をカスタマイズする

はじめに こんにちは。技術4課の保田(ほだ)です。こんにちは。 あれ?「こんにちは。」って二回言ってる?まるでこれは Lambda の自動リトライ機能のようですね?? というわけで本日はそういう話です。 要約 非同期呼び出しの「最大イベント経過時間」と…