Webhook
RailwayでWebhookを設定して、デプロイメントやイベントのリアルタイム更新を受信する方法を学びます。
著者: AIイノベーションズ 阿部隼也(X / Twitter)Webhook
Webhookを使用すると、デプロイメントのステータスの変更を自分のアプリケーションに通知できます。プロジェクトごとに設定されます。
Webhookの設定
Webhookを設定するには、次の手順を実行します。
- Railwayで既存のプロジェクトを開きます。
- 右上隅にある
Settings
ボタンをクリックします。 - Webhookタブに移動します。
- 目的のWebhook URLを入力します。
- オプション:通知を受信するイベントを指定します。
Save Webhook
をクリックします。
指定したURLは、サービスのデプロイメントステータスが変更されたり、アラートがトリガーされたりすると、Webhookペイロードを受信します。これは、プロジェクト内のすべての環境で実行されます。
ペイロードの例
{
"type": "DEPLOY",
"timestamp": "2025-02-01T00:00:00.000Z",
"project": {
"id": "[project ID]",
"name": "[project name]",
"description": "...",
"createdAt": "2025-02-01T00:00:00.000Z"
},
"environment": {
"id": "[environment ID]",
"name": "[environment name]"
},
"deployment": {
"id": "[deploy ID]",
"creator": {
"id": "[user id]",
"name": "...",
"avatar": "..."
},
"meta": {}
}
}
Webhookのテスト
Test Webhook
ボタンは、指定されたWebhook URLにテストペイロードを送信します。
注:セキュリティ上の理由から、テストWebhookはフロントエンドクライアントから送信されるため、クロスオリジンリソース共有(CORS)の制限が発生する可能性があります。これは通常、テストWebhook機能を使用する際の配信エラーとして表示されます。
Muxers:プロバイダー固有のWebhook
特定のWebhook URLの場合、Railwayはペイロードを宛先に合わせて自動的に変換します(Muxersと呼びます)。これにより、リクエスト本文のフォーマットを処理する独自のミドルウェアを作成することなく、Webhookを簡単に使用できます。現在サポートされているプロバイダーは次のとおりです。
- Discord
- Slack
Discord用のWebhookの設定
DiscordはWebhookとの直接統合をサポートしています。サーバーでこれを有効にするには、管理者であるか、適切な権限を持っている必要があります。
- Discordで、サーバーのテキストチャンネルの設定を開きます。このメニューは、サーバーにチャンネルがリストされている場所にある歯車/歯車アイコンからアクセスできます。
- インテグレーションタブをクリックします。
- Webhookオプションをクリックします。
- 新しいWebhookを作成するオプションが表示されます。このボタンをクリックして、希望のボット名とチャンネルを入力します。
- 作成されると、新しいWebhook URLをコピーするオプションが表示されます。そのURLをコピーします。
- Railwayに戻り、統合したいプロジェクトを開きます。
- プロジェクトのデプロイメントメニューをクリックします。
- 設定タブに移動します。
- コピーしたWebhook URLを「ビルドとデプロイのWebhook」の下の入力欄に入力します。
- 入力欄の右側にあるチェックマークをクリックして保存します。
この時点で、Discord MuxerはURLを識別し、Discord統合に対応するようにペイロードを変更します。ペイロードプレビューパネルを展開すると、これを確認できます。
これで完了です!プロジェクトが再度デプロイされると、そのDiscordチャンネルはデプロイメントに関する更新情報を受け取ります!
Slack用のWebhookの設定
SlackはWebhookとの直接統合をサポートしています。
- Slackインスタンスの受信Webhookを有効にします(チュートリアルはこちら)
- チャンネル用の
hooks.slack.com
Webhook URLを生成します(チュートリアルはこちら) - Railwayを開き、プロジェクトのWebhookタブに移動します。
- SlackからURLを貼り付けます
PR