QStashをDockerで動かす!ローカル開発環境の構築手順

QStashをローカル環境で使うためには2つの方法があります。

  1. Local Tunnel(ローカルトンネル)を使う方法
  2. qstash-cliを使う方法(Docker環境でのセットアップが可能)

QStashはクラウド環境でのメッセージキューやジョブスケジューリングに便利ですが、開発時にはローカル環境でのテストが不可欠です。本記事では、QStashをローカル環境で利用するための方法を紹介し、特にDockerを活用して簡単にセットアップする方法を詳しく解説します。

Local Tunnel(ローカルトンネル)を使う方法

Local Tunnel - Upstash Documentation

ローカルトンネルを利用すると、QStashのリクエストをローカル環境に転送できます。

トンネル自体は以下のコマンドで実行できます。

1
$ npx localtunnel --port 3000

ただし、以下のデメリットがあります。

  • qstash側でチームを用意する必要がある
  • curl https://loca.lt/mytunnelpassword で接続パスワードを入手する必要がある

このため、ローカルトンネルを使うよりもDocker環境を用意して、より手軽にQStashをローカル環境で利用する方法をおすすめします。

package.jsonのnohoistを設定しているとエラーになる?

package.jsonのworkspaceの項目にnohoistをこのように設定しているとエラーが発生しました。

1
2
3
4
5
  "workspaces": {
    "nohoist": [
      "@hookform/resolvers"
    ]
  }
1
TypeError: workspaces config expects an Array

QStashをnpm経由で利用する際には、package.jsonの設定に注意が必要です。

qstash-cliを使う方法(Docker対応)

Local Development - Upstash Documentation

qstash-cliを利用すると、ローカル環境でQStashを手軽にセットアップできます。さらに、Docker環境を活用すれば、手間なくローカル開発環境を構築できます。

qstash-cliをDocker Composeで用意する

Dockerを利用すると、QStashのローカル環境を簡単に構築できます。

まずはcompose.yamlを用意する

以下のように compose.yaml を作成します。

1
2
3
4
5
6
services:
  qstash:
    image: public.ecr.aws/upstash/qstash:latest
    ports:
      - '8080:8080'
    command: ['qstash', 'dev']

起動する

1
$ docker compose up -d

Docker Composeを利用することで、QStashの開発環境を素早く立ち上げることができます。

接続先情報について

docker compose logs qstash を実行すると、環境変数の情報が確認できます。

1
2
3
4
5
6
7
$ docker compose logs qstash
qstash-1  | Upstash QStash development server is running at http://127.0.0.1:8080
qstash-1  |
qstash-1  | A default user has been created for you to authorize your requests.
qstash-1  | QSTASH_TOKEN=eyJVc2VySUQiOiJkZWZhdWx0VXNlciIsIlBhc3N3b3JkIjoiZGVmYXVsdFBhc3N3b3JkIn0=
qstash-1  | QSTASH_CURRENT_SIGNING_KEY=sig_68AqXhtPaxeh5wa62VkA8fXkstB2
qstash-1  | QSTASH_NEXT_SIGNING_KEY=sig_4h3F9a3UgeqXE837T57vvaGhzfB9

この情報をもとに、以下のように環境変数を設定すれば、QStashのローカル環境を利用できます。

1
2
3
4
QSTASH_URL=http://localhost:8080
QSTASH_TOKEN=eyJVc2VySUQiOiJkZWZhdWx0VXNlciIsIlBhc3N3b3JkIjoiZGVmYXVsdFBhc3N3b3JkIn0=
QSTASH_CURRENT_SIGNING_KEY=sig_7BsYtwa4XadTddPnoeaFSahZKLHp
QSTASH_NEXT_SIGNING_KEY=sig_7GNgZqCGNXP98pqVyrB5ro8Hg6j9

まとめ

QStashをローカル環境で利用するためには、Local Tunnelを使う方法と、qstash-cliを使う方法があります。特に、Dockerを利用すれば環境構築が簡単になり、開発がスムーズに進みます。

  • Local Tunnelを使う場合、セットアップに手間がかかる
  • Docker環境を使うと、 docker compose up -d ですぐに開発環境を用意できる
  • docker compose logs qstash を使えば、必要な環境変数を取得可能

ローカルでのQStashの利用を検討している方は、ぜひDockerを活用した方法を試してみてください!

カテゴリ

comments powered by Disqus