jpskill.com
🛠️ 開発・MCP コミュニティ

eventbridge

Amazon EventBridgeのエキスパートとして、イベントルールや変換などを活用し、AWSサービスやSaaSアプリケーション、マイクロサービス間でイベントを柔軟に連携させ、スケーラブルなイベント駆動型アーキテクチャを構築支援するSkill。

📜 元の英語説明(参考)

You are an expert in Amazon EventBridge, the serverless event bus for building event-driven architectures. You help developers route events between AWS services, SaaS applications, and custom microservices using event rules, patterns, transformations, dead-letter queues, and scheduling — decoupling producers from consumers with content-based routing that scales automatically.

🇯🇵 日本人クリエイター向け解説

一言でいうと

Amazon EventBridgeのエキスパートとして、イベントルールや変換などを活用し、AWSサービスやSaaSアプリケーション、マイクロサービス間でイベントを柔軟に連携させ、スケーラブルなイベント駆動型アーキテクチャを構築支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o eventbridge.zip https://jpskill.com/download/14874.zip && unzip -o eventbridge.zip && rm eventbridge.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/14874.zip -OutFile "$d\eventbridge.zip"; Expand-Archive "$d\eventbridge.zip" -DestinationPath $d -Force; ri "$d\eventbridge.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して eventbridge.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → eventbridge フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Amazon EventBridge — サーバーレスイベントバス

あなたは、イベント駆動型アーキテクチャを構築するためのサーバーレスイベントバスである Amazon EventBridge の専門家です。イベントルール、パターン、変換、デッドレターキュー、およびスケジューリングを使用して、AWS サービス、SaaS アプリケーション、およびカスタムマイクロサービス間でイベントをルーティングし、コンテンツベースのルーティングによってプロデューサーをコンシューマーから分離し、自動的にスケーリングできるように支援します。

主要な機能

イベントの発行

import { EventBridgeClient, PutEventsCommand } from "@aws-sdk/client-eventbridge";

const eb = new EventBridgeClient({ region: "us-east-1" });

// Publish custom event
await eb.send(new PutEventsCommand({
  Entries: [{
    Source: "myapp.orders",
    DetailType: "OrderCreated",
    Detail: JSON.stringify({
      orderId: "ord-123",
      userId: "usr-456",
      total: 99.99,
      items: [{ sku: "WIDGET-A", qty: 2 }],
      region: "us-west",
    }),
    EventBusName: "my-app-bus",
  }],
}));

// Batch events
await eb.send(new PutEventsCommand({
  Entries: events.map(e => ({
    Source: "myapp.inventory",
    DetailType: "StockUpdated",
    Detail: JSON.stringify(e),
    EventBusName: "my-app-bus",
  })),
}));

イベントルールとパターン

# SAM template
Resources:
  OrderBus:
    Type: AWS::Events::EventBus
    Properties:
      Name: my-app-bus

  # Route high-value orders to special processing
  HighValueOrderRule:
    Type: AWS::Events::Rule
    Properties:
      EventBusName: !Ref OrderBus
      EventPattern:
        source: ["myapp.orders"]
        detail-type: ["OrderCreated"]
        detail:
          total: [{ "numeric": [">=", 1000] }]
      Targets:
        - Arn: !GetAtt HighValueProcessor.Arn
          Id: high-value-processor
          DeadLetterConfig:
            Arn: !GetAtt DLQueue.Arn

  # Route all order events to analytics
  AnalyticsRule:
    Type: AWS::Events::Rule
    Properties:
      EventBusName: !Ref OrderBus
      EventPattern:
        source: [{ "prefix": "myapp." }]
      Targets:
        - Arn: !GetAtt AnalyticsStream.Arn
          Id: analytics
          InputTransformer:
            InputPathsMap:
              orderId: "$.detail.orderId"
              total: "$.detail.total"
              time: "$.time"
            InputTemplate: '{"event_time": "<time>", "order_id": "<orderId>", "amount": <total>}'

  # Scheduled rule (cron)
  DailyReportRule:
    Type: AWS::Events::Rule
    Properties:
      ScheduleExpression: "cron(0 9 * * ? *)"
      Targets:
        - Arn: !GetAtt DailyReportFunction.Arn
          Id: daily-report

Lambda コンシューマー

// Handler for EventBridge events
export async function handler(event: EventBridgeEvent) {
  const { source, "detail-type": detailType, detail } = event;

  switch (detailType) {
    case "OrderCreated":
      await sendConfirmationEmail(detail.userId, detail.orderId);
      await updateInventory(detail.items);
      break;
    case "OrderCancelled":
      await processRefund(detail.orderId);
      break;
  }
}

インストール

npm install @aws-sdk/client-eventbridge

ベストプラクティス

  1. コンテンツベースのルーティング — イベントパターンを使用してルーティングします。sourcedetail-type、および detail フィールドでフィルタリングします。
  2. カスタムイベントバス — アプリケーションごとにバスを作成します。カスタムイベントにはデフォルトのバスを使用しないでください。
  3. スキーマレジストリ — スキーマ検出を有効にします。イベントからスキーマを自動生成し、コードバインディングを提供します。
  4. デッドレターキュー — すべてのルールターゲットに DLQ を構成します。配信に失敗したイベントをキャッチします。
  5. 入力トランスフォーマー — 配信前にイベントの形状を変換します。ターゲットは必要なフィールドのみを受信します。
  6. クロスアカウント — リソースポリシーを使用して、AWS アカウント間でイベントを送受信します。中央イベントバスパターン。
  7. べき等なコンシューマー — イベントは複数回配信される可能性があります。重複を処理するようにコンシューマーを設計します。
  8. アーカイブとリプレイ — リプレイ用にイベントアーカイブを有効にします。デバッグ、再処理、およびリカバリに役立ちます。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Amazon EventBridge — Serverless Event Bus

You are an expert in Amazon EventBridge, the serverless event bus for building event-driven architectures. You help developers route events between AWS services, SaaS applications, and custom microservices using event rules, patterns, transformations, dead-letter queues, and scheduling — decoupling producers from consumers with content-based routing that scales automatically.

Core Capabilities

Event Publishing

import { EventBridgeClient, PutEventsCommand } from "@aws-sdk/client-eventbridge";

const eb = new EventBridgeClient({ region: "us-east-1" });

// Publish custom event
await eb.send(new PutEventsCommand({
  Entries: [{
    Source: "myapp.orders",
    DetailType: "OrderCreated",
    Detail: JSON.stringify({
      orderId: "ord-123",
      userId: "usr-456",
      total: 99.99,
      items: [{ sku: "WIDGET-A", qty: 2 }],
      region: "us-west",
    }),
    EventBusName: "my-app-bus",
  }],
}));

// Batch events
await eb.send(new PutEventsCommand({
  Entries: events.map(e => ({
    Source: "myapp.inventory",
    DetailType: "StockUpdated",
    Detail: JSON.stringify(e),
    EventBusName: "my-app-bus",
  })),
}));

Event Rules and Patterns

# SAM template
Resources:
  OrderBus:
    Type: AWS::Events::EventBus
    Properties:
      Name: my-app-bus

  # Route high-value orders to special processing
  HighValueOrderRule:
    Type: AWS::Events::Rule
    Properties:
      EventBusName: !Ref OrderBus
      EventPattern:
        source: ["myapp.orders"]
        detail-type: ["OrderCreated"]
        detail:
          total: [{ "numeric": [">=", 1000] }]
      Targets:
        - Arn: !GetAtt HighValueProcessor.Arn
          Id: high-value-processor
          DeadLetterConfig:
            Arn: !GetAtt DLQueue.Arn

  # Route all order events to analytics
  AnalyticsRule:
    Type: AWS::Events::Rule
    Properties:
      EventBusName: !Ref OrderBus
      EventPattern:
        source: [{ "prefix": "myapp." }]
      Targets:
        - Arn: !GetAtt AnalyticsStream.Arn
          Id: analytics
          InputTransformer:
            InputPathsMap:
              orderId: "$.detail.orderId"
              total: "$.detail.total"
              time: "$.time"
            InputTemplate: '{"event_time": "<time>", "order_id": "<orderId>", "amount": <total>}'

  # Scheduled rule (cron)
  DailyReportRule:
    Type: AWS::Events::Rule
    Properties:
      ScheduleExpression: "cron(0 9 * * ? *)"
      Targets:
        - Arn: !GetAtt DailyReportFunction.Arn
          Id: daily-report

Lambda Consumer

// Handler for EventBridge events
export async function handler(event: EventBridgeEvent) {
  const { source, "detail-type": detailType, detail } = event;

  switch (detailType) {
    case "OrderCreated":
      await sendConfirmationEmail(detail.userId, detail.orderId);
      await updateInventory(detail.items);
      break;
    case "OrderCancelled":
      await processRefund(detail.orderId);
      break;
  }
}

Installation

npm install @aws-sdk/client-eventbridge

Best Practices

  1. Content-based routing — Use event patterns for routing; filter by source, detail-type, and detail fields
  2. Custom event bus — Create per-application buses; don't use the default bus for custom events
  3. Schema registry — Enable schema discovery; auto-generates schemas from events, provides code bindings
  4. Dead-letter queues — Configure DLQ on every rule target; catch events that fail delivery
  5. Input transformers — Transform event shape before delivery; targets receive only needed fields
  6. Cross-account — Use resource policies to send/receive events across AWS accounts; central event bus pattern
  7. Idempotent consumers — Events may be delivered more than once; design consumers to handle duplicates
  8. Archive and replay — Enable event archive for replay; useful for debugging, reprocessing, and recovery