CeleryでFastAPIのバックグラウンドジョブを動かす手順

このエントリでは、 CeleryでFastAPIのバックグラウンドジョブを動かす手順をまとめています。 また、動かすプロセスがいくつかあり面倒なので、 Supservisorでまとめて起動できるようにしています。 各プロセスは、次の役割を担います。 FastAPI: ジョブを受け付ける Redis: ジョブのキューを管理する Celery: ジョブを起動する 各ツールのドキュメントは以下を参照してください。 FastAPI https://fastapi.tiangolo.com/ja/ Celery …

AWS Batch(Fargate)で、PrivateSubnet上のComputingEnvironmentでECRのPrivateRepositoryからimageをpullして実行する手順

AWS Batch(Fargate)で、 Subnet外にアクセスできないPrivateSubnet上の ComputingEnvironmentでECRのPrivateRepositoryからimageをpullして実行する手順をまとめておきます。 作成するシステムの構成は、次の図のとおりです。 Subnet外のAmazonECRのRepositoryにアクセスするため、 VPC Endpointを利用する構成とします。 右側のAWS Batchの部分を「AWS Batchの環境とJobの準備」の章で 左 …

AWS Secrets Manager emulatorを使う手順

このエントリでは、 AWSのSecretsManagerから情報を取得するアプリケーションを、 ローカルPCで開発する際に便利な、 AWS Secrets Manager emulatorの使い方手順をまとめています。 AWS Secrets Manager emulator https://github.com/skarpdev/hapi-aws-secrets-manager-emulator AWS Secrets Manager emulatorの起動から、 Pythonのアプリケーションから情報を …

AWS Lambdaに対応したLangServeアプリケーションの作成手順

以下のエントリでLangServeを動かしたので、 次はAWS Lambdaに対応したLangServeアプリケーションの作成を考えたいと思います。 LangChainで作ったChainをLangServeでAPI化する手順 https://takemikami.com/2023/11/18/LangChainChainLangServerAPI.html AWS Lambdaのひな形アプリケーションの作成 AWS SAM CLIでAWS Lambdaアプリケーションのひな形を用意します。 sam init …

LangChainで作ったChainをLangServeでAPI化する手順

LangChainで作ったChainをLangServeでAPI化する手順をまとめておきます。 Chainが出来ていれば、add_routeで追加するだけです。 LangServe https://python.langchain.com/docs/langserve Chainを用意する まずは、LangChainのChainを用意します。 チャットで会話するだけの簡単なChainです。 conversation_sample.py from langchain.chat_models import …

DooD(Docker outside of Docker)でDockerコンテナ内からdocker composeを使う

DooD(Docker outside of Docker)という方法を使うと、 Dockerホストで行っていた処理を、Dockerコンテナ内で行うことが出来ます。 但し、Dockerコンテナ内から、Docker Composeを使う場合は、 そのままでは使用することは出来ません。 Docker ComposeがDockerホストのパスを前提に動作するので、 DockerホストとDooDコンテナのパスを合わせる必要があります。 ファイル構成 結論から書くと、以下のような構成で実現できます。 # Docker …

Hyper-Vに開発用UbuntuLinux22.04環境を作るときに参考にしたサイトのメモ

Hyper-Vに開発用UbuntuLinux22.04環境を作るときに参考にしたサイトのメモです。 想定OSは、Windows11Proです。 このエントリでは、以下の点についてメモを残しています。 Hyper-V・UbuntuLinuxのセットアップ Windowsとの運用環境 ネットワーク WSLとの接続 Windows TerminalからのSSH接続 XServer(VcXsrv)の導入 日本語環境 Windowsショートカット ファイル共有 Windows ← Ubuntu (Ubuntuか …

PolyCoderでコード生成を試してみたメモ

PolyCoderというプログラミング言語の大規模言語モデルを動かして、 コード生成を試してみたので、その手順メモを残しておきます。 Large Models of Source Code | GitHub https://github.com/VHellendoorn/Code-LMs PolyCoderが何なのかは、次の記事を見てもらえば、なんとなく分かると思います。 新たなオープンソースのAIコード生成モデル「PolyCoder」–カーネギーメロン大 | ZDNET …

日本語Wikipediaのデータで言語モデル(KenLM, RNNLM)を学習させる手順メモ

日本語Wikipediaのデータで言語モデル(KenLM, RNNLM)を学習させる手順のメモです。 kenlm | GitHub https://github.com/kpu/kenlm Faster RNNLM (HS/NCE) toolkit | GitHub https://github.com/yandex/faster-rnnlm 動作確認環境は、次のとおり。 Ubuntu Linux 20.04 / WSL2 Python 3.10.11 Wikipediaデータの準備 日本 …

Docker Composeを使ってテストを動かすためのノウハウ

このエントリでは、 Docker Composeを使って、 テスト対象の起動からテスト実行までをまとめて実行したい時に、 必要になりそうなノウハウを取り上げます。 ここでは、次のような要件があると考えました。 開発環境構築用docker-compose.yamlはそのまま変更せず、テスト実行用のコンテナを追加したい テストの成否によってDocker Compose実行後の終了コードを変えたい 異常系テストのために一部コンテナを停止するなど、コンテナをテストコードから制御したい Docker Composeを …

IntelliJ IDEAとWSLで開発する時の構成パターンの整理メモ

IntelliJ IDEAとWSLで開発したい時、 開発環境の構成パターンはいくつかあるので、 それぞれについて整理したメモを、このエントリに残しておきます。 UI、IDE、実行環境をWindows側・WSL側(Linux)のどちらで動かすかで整理すると、 以下のような構成パターンがあります。 他にもあるかも知れないですが 開発するものによって違いますが、 現時点では「1,2の組み合わせ」「4」のどちらかで開発するのが良いかなと思います。 1. WSLは使わない これは素直にWindowsで全て動かすパター …

GoogleCloudPlatformのローカルエミュレータ(bigtable,pubsub,storage)の使い方メモ

GoogleCloudPlatformのエミュレータを ローカルPC上でdockerを使って動かす時のメモです。 エミュレータを起動して、Pythonのコードでアクセスしてみます。 ここでは、以下3サービスを動かしてみます。 bigtable pubsub storage datastore, firestore, spanner も同様の手順で利用できると思います。 エミュレータの起動 ここでは、docker composeを使って動かします。 次のようなdocker-compose.ymlを用意します。 …

Process Composeを使ってみた(Railsを例に)

docker-composeは決まった形式でプロセスの起動方法を書けるので便利ですが、 手元のPCに開発環境を作る場合など、 プロセスの起動管理をしたいだけの時は、docker前提だとtoo-muchで扱いにくい事も多いです。 調べてみるとdocker前提で無くdocker-composeライクに起動管理するツールがありました。 Process Compose | GitHub https://github.com/F1bonacc1/process-compose 本エントリでは、このツールの使い方 …

libfaketimeでシステム時間を変化させたテストする

Dockerでコンテナ化されたWebアプリケーションに対して、 システム時間を変化させたテストを実行したかったので、手順をまとめました。 ここでは、libfaketimeというものを使います。 libfaketime | GitHub https://github.com/wolfcw/libfaketime 対象のWebアプリケーション テスト対象のWebアプリは、次の仕様とします。 土曜日・日曜日の時: Hello, Holiday! と表示 それ以外: Hello, Working! と表示 以降に、 …

WSL上でSeleniumからWindows版Chrome使いたい時にRemoteWebDriver使うのが面倒なので、LocalWebDriver風に扱えるようにProxyを作ってみました

WSL上でSeleniumからWindows版Chrome使いたい時にRemoteWebDriver使うのが面倒なので、 LocalWebDriver風に扱えるようにProxyを作ってみました。 chromedriver-proxy-for-wsl | GitHub https://github.com/takemikami/chromedriver-proxy-for-wsl Local WebDriver、Remote WebDriver、 及び作成したプロキシを使った場合の3パターンの構成の違いは次の …

Author
takemikami
データエンジニア
・データ分析基盤の開発運用
・マーケティングデータ分析
研究履歴 / 執筆履歴 / プロダクト
facebook
X(twitter)
BlueSky
LinkedIn
YouTube
GitHub
SpeakerDeck
slideshare
Books
takemikami's shop
Recent Posts
    [PR]
    PlayStation
    Steam
    About