DynamoDBとEventBridge
🔥 Vibe プロンプト
「シングルテーブル設計のDynamoDBテーブルを設計。EventBridgeでクロスサービスイベントを管理。」
シングルテーブル設計
# PK: ENTITY#ID, SK: ENTITY#METADATA
table.put_item(Item={
'PK': 'USER#user123',
'SK': 'PROFILE',
'name': 'Alice',
'email': 'alice@example.com'
})
table.put_item(Item={
'PK': 'USER#user123',
'SK': 'ORDER#ord456',
'order_id': 'ord456',
'total': 99.99
})
# ユーザーの全注文をクエリ
response = table.query(
KeyConditionExpression='PK = :pk AND begins_with(SK, :sk)',
ExpressionAttributeValues={':pk': 'USER#user123', ':sk': 'ORDER#'}
)
EventBridge
resource "aws_eventbridge_rule" "order_created" {
name = "order-created"
event_pattern = jsonencode({
source = ["myapp.orders"]
detail-type = ["OrderCreated"]
})
}
eventbridge.put_events(Entries=[{
'Source': 'myapp.orders',
'DetailType': 'OrderCreated',
'Detail': json.dumps({'order_id': 'ord456'}),
'EventBusName': 'default'
}])
イベント駆動の利点
- 疎結合なサービス
- 非同期処理(耐障害性)
- 拡張が容易
- 組み込みのリトライとDLQ
章のまとめ
- コアコンセプトと原理を理解
- 実装方法とテクニックを習得
- 一般的な問題と解決策に精通
- 実際のプロジェクトに適用可能
さらに読む
- 公式ドキュメントとAPIリファレンス
- GitHubのオープンソース例
- 技術書とオンラインコース
- コミュニティディスカッションと技術ブログ
実装例
基本例
# 完全な実装例を提供します
手順
- セットアップ: 開発環境の設定
- データ: 必要なデータの準備
- 実装: コア機能の構築
- テスト: 動作確認
- 最適化: パフォーマンスの向上
よくあるエラー
| エラー種別 | 原因 | 解決方法 | |-----------|------|---------| | コンパイル | 構文 | コードの構文を確認 | | 実行時 | 環境 | 依存パッケージの確認 | | 論理 | アルゴリズム | ステップごとのデバッグ | | パフォーマンス | 効率 | プロファイラーの使用 |
コード例
import sys
def main():
print("Hello, World!")
if __name__ == "__main__":
main()
参考資料
- 公式ドキュメント
- APIリファレンス
- オープンソース例
- コミュニティディスカッション