maybe daily dev notes

私の開発日誌

2024-01-01から1年間の記事一覧

Aurora DSQLをPrismaで使う

次世代のサーバーレスRDBであるAurora DSQLを、TypeScript用ORMのPrismaと一緒に使う話です。DSQLドンドン使っていきたい! DSQL x Prismaは実現できるのか そもそも、今のPrismaはDSQLを扱えるでしょうか? 幸いにもDSQLは多くの面でPostgres互換を実現して…

Bedrockで最大出力トークン数を超過したときに生成を継続する実装例

生成AIモデルには出力トークンの上限数があるため、長い文章を生成させようとしたときに、途中で切れてしまう場合があります。 このときに、切れた部分から再生成するコードを紹介します (備忘のため)。 コードはAmazon BedrockのConverse APIを前提とします…

CDK Tips: Step Functionsで別リージョンのAWS APIを呼び出す

AWS CDK Tipsシリーズです。 先日久々にAWS CDKの新機能をマージしてもらえたので、その宣伝をさせてください。Step Functionsで別リージョンのAWS APIを呼び出すためのコンストラクトです。 github.com TL;DR 以下のコードで、Step Functionsからクロスリー…

Difyのコード実行機能で任意のPythonライブラリを使う

LLMアプリ開発プラットフォームのDifyでは、ワークフローのコードブロックでPythonコードを実行できます。 この記事では、このコード内でboto3やnumpyなど任意のライブラリを呼び出す方法をまとめます。セルフホストのDify向けです。 Difyコードブロックの例…

Amazon S3で分散ロックを実装する

先日Amazon S3でconditional write機能がリリースされました。本記事では、この機能を用いた分散ロックについて検討します。 aws.amazon.com 分散ロックとは 分散ロック (distributed lock) とは、分散環境で排他制御を実現するために必要な機構です。実現で…

Python Lambdaのコールドスタートが遅いときの対処法

AWS Lambdaのコールドスタートはアプリ開発でしばしば悩まされる問題です。この記事では、特にPythonのLambda関数 (コンテナも含む) において、コールドスタートが遅い際の対処方法をいくつか紹介します (注意: 網羅は目指してません)。 第一歩: 計測する Py…

登壇Tips: 聴講者に挙手をお願いする上で注意する5つのこと

エンジニア向けのイベントで登壇するとき、会場の人に向けて選択式の質問をし、当てはまる項目に挙手させること (以下会場アンケートと呼びます) があると思います。下図が一例です。 私が最近失敗した質問です 改善点はどこでしょうか? 会場アンケートはう…

Amazon OpenSearch Serviceのfine-grained access control機能をCDKで管理する

Amazon OpenSearch Serviceでは、ドメインに対するアクセス制御の手段の一つとして、Fine-grained access control (きめ細かいアクセス制御、以下FGAC) が利用できます。 この記事では、FGACの設定をAWS CDKから管理する方法を紹介します。 なぜFGACを使うか…

CDK Tips: CDKのインテグレーションテストに救われた話

AWS CDK Tipsシリーズです。 松尾さんの記事に触発されて、今回はCDKにおけるインテグレーションテストの体験談を書きます。なお、本記事では以降integ testという言葉は、CDKのinteg-testsとinteg-runnerモジュ―ルで実現される自動テストのことを指すことと…

AWS CDKでSOCIインデックスをデプロイする

TL;DR; 以下のコードでCDKからSOCIインデックスをビルドし、ECRにプッシュすることができます。 # 依存関係のインストール npm install deploy-time-build import { SociIndexBuild } from 'deploy-time-build; const asset = new DockerImageAsset(this, 'I…

CDK Tips: 自作コンストラクトをPython向けに公開する

AWS CDK Tipsシリーズです。 AWS CDKのコンストラクトライブラリをPython向けに公開する手順のメモです。 最近 upsert-slr というライブラリをPyPIにも公開したので、その時のコードを例に紹介します。 モチベーション 最近のサーベイによれば、CDKのPython…

AWS Lambda特化のJavaScriptランタイム「LLRT」を紹介

最近にわかに話題沸騰中のJavaScriptランタイム LLRT を紹介する記事です。 github.com LLRTとは LLRT (Low Latency Runtime) は、軽量なJavaScriptランタイムです。サーバーサイド向けのJavaScriptランタイムはNode.js、Deno、Bunなどが有名ですが、それら…

Aurora Postgres Data APIをあらゆるORMから使う試み

あけましておめでとうございます。冬休みの自由工作レポートを提出します。 はじめに 最近Amazon RDS AuroraでData APIが使えるようになりました。Auroraインスタンスに対してHTTP APIでSQLクエリを発行できる便利なものです。 この記事では、Data APIをより…