HN 日本語サマリー

← 一覧へ戻る
インフラ・DevOps

Fakecloud: 統合テスト用のローカルAWSクラウドエミュレーター

Fakecloud: Local AWS cloud emulator for integration tests (fakecloud.dev)

154 pointsby theanonymousone78 コメント

要約

Fakecloudは、ローカル環境でAWSクラウドの動作をエミュレートするツールです。通常のAWSクライアントやIaCツールを使用しながら、完全にローカルで開発・テストを行うことができます。106のAWSサービスをサポートし、高い互換性を誇ります。アカウントや認証トークン、有料プランなしでコア開発フローをローカルに保てる点が特徴です。

全文翻訳

fakecloud 統合テスト用のローカルAWSクラウドエミュレーター。 通常のAWSクライアントでアプリを実行し、完全にローカルに留まり、テストでより深い可視性が必要な場合はfakecloud SDKを使用します。 106サービス。7,543オペレーション。249,449/249,449 Smithyバリアントが合格 — 真の100%準拠。 はじめに なぜfakecloudなのか? fakecloudは、インフラストラクチャのように動作するローカルAWS環境を提供し、モックではありません。アプリは通常のAWS SDK、CLI、IaCツールを使用します。現在のLocalStack Communityセットアップとは異なり、コア開発フローをローカルに保つためだけに、アカウント、認証トークン、または有料プランは必要ありません。 SDKはワークフローをより良くしますが、狭くしません。fakecloudを起動し、実際にデプロイするコードを実行し、後でメール/メッセージ/呼び出しを検査し、オンデマンドで発生する非同期AWSスタイルの動作を強制します。 リアルなローカルテストのために構築 アプリのためのリアルなAPI、テストのための目的構築されたツール。 ワークフロー アプリが実際に行うことをテストする localhostに対して通常のAWSクライアントを使用し、ポーリング、フィクスチャ、またはプライベートテストフックを組み合わせる代わりに、fakecloudで効果を検証します。 SDK ファーストパーティのテストクライアント TypeScript、Python、Go、PHP、Java、Rust、.NET SDKは、リセット、アサーション、およびアプリが通常のAWS APIを使用した後の非同期プロセッサの手動制御のために/_fakecloud/*エンドポイントをラップします。 カバレッジ 106 AWSサービス S3、SQS、SNS、EventBridge、EventBridge Pipes、EventBridge Scheduler、Lambda、EC2、DynamoDB、IAM、STS、Organizations、SSM、Secrets Manager、CloudWatch Logs、CloudWatch(メトリクスとアラーム)、KMS、CloudFormation、Cloud Control API、SES、Cognito User Pools、Cognito Identity、Kinesis、Firehose、RDS、RDS Data API、Aurora DSQL、Resource Groups、Resource Groups Tagging API、ElastiCache、MemoryDB、EKS、Cloud Map、Step Functions、API Gateway v1 (REST)、API Gateway v2 (HTTP)、Bedrock、Bedrock Agent、Bedrock Agent Runtime、Bedrock Runtime、ECR、ECS、Elastic Load Balancing v2、CloudFront、Route 53、WAF v2、Application Auto Scaling、Athena、ACM、Glue、その他。 テスト済み 準拠テスト済み 実装されたすべての7,543のAPIオペレーション全体で真の100%準拠:249,449/249,449のSmithyモデル生成テストバリアントがコミットごとに合格し、公式AWS SDKに対するエンドツーエンドテストによってバックアップされています。 実際の動作 クロスサービスフローが配線されています 30以上のサービス間統合:S3通知、SNSファンアウト、EventBridgeターゲット、DynamoDBストリーム、CloudWatch Logsサブスクリプション、Cognitoトリガー、Step Functionsタスク統合、API Gateway → Lambdaなど — すべてが実際のサービスインタラクションを実行します。 シンプル 認証不要、ロックインなし、有料プランなし 単一のバイナリまたはDockerイメージを実行し、任意のダミークレデンシャルを使用し、誰かのプラットフォームにサインインすることなく、ワークフロー全体をローカルに保ちます。 テストアサーション用のSDK アプリでAWS SDKを使い続けてください。エミュレーター自体の上に可視性と制御が必要な場合は、fakecloud SDKを使用してください。 TypeScript npm install fakecloud SESメール、SNSメッセージ、SQSキュー、Lambda呼び出し、Cognito確認コードなどを検査します。 npmで表示 Python pip install fakecloud pytestまたはアプリレベルの統合テスト用の非同期および同期クライアント。同じイントロスペクションとシミュレーションカバレッジを備えています。 pypiで表示 Go get github.com/faiscadev/fakecloud/sdks/go リセット、イベント履歴、SESインバウンドシミュレーション、およびその他のfakecloudテストサーフェス用のコンテキストフレンドリーなヘルパー。 pkg.go.devで表示 Rust cargo add fakecloud-sdk リセット、状態検査、fakecloudイントロスペクションサーフェスへの直接アクセスが必要なテスト用のネイティブRustクライアント。 crates.ioで表示 クイックスタート fakecloudを起動し、AWSクライアントをlocalhostに向け、何が起こったかをアサートします。 # インストール(CargoまたはDockerは不要) $ curl -fsSL https://fakecloud.dev/install.sh | bash # または: brew install fakecloud $ fakecloud # アプリはlocalhostに対して通常のAWS SDKを使用します $ aws --endpoint-url http://localhost:4566 sqs create-queue \ --queue-name my-queue # テストはfakecloud SDKを通じて状態を検査できます $ npm install fakecloud 比較 リアルなAWS APIとアカウント要件なしの完全にローカルなワークフローが必要な場合は、fakecloudがそのパスのために構築されています。SDKは追加のテスト上の利点であり、そのポジショニングの代替ではありません。 fakecloud LocalStack Community ライセンス AGPL-3.0 プロプライエタリ 認証が必要 いいえ はい(アカウント+トークン) 商用利用 無料 有料プランのみ Dockerが必要 いいえ(スタンドアロンバイナリ) はい 起動時間 約300ms 約3秒 アイドルメモリ 約10 MiB 約150 MiB インストールサイズ 約19 MBバイナリ 約1 GB Dockerイメージ AWSサービス 106サービス(真の100%準拠) 30+(Community以降は有料のみ) テストアサーションSDK TypeScript、Python、Go、PHP、Java、Rust、.NET Python、Java Cognito User Pools 132オペレーション 有料のみ SES v2 116オペレーション 有料のみ SESインバウンドメール 実際の受信ルールアクション 保存されているが実行されていない RDS 163オペレーション、PostgreSQL/MySQL/MariaDB(Docker経由)、PostgreSQL aws_lambda拡張機能 有料のみ ElastiCache 75オペレーション、RedisおよびValkey(Docker経由) 有料のみ MemoryDB 45オペレーション、フルコントロールプレーン 有料のみ EKS クラスターコントロールプレーン(バッチ1) 有料のみ API Gateway v2 103オペレーション、HTTP API + 開発者ポータル + JWT/Lambdaオーソライザー 有料のみ Bedrock 4つのAPI(Bedrock + Bedrock Runtime + Bedrock Agent + Bedrock Agent Runtime)にわたる216オペレーション 利用不可 サポートされているサービス 実装されたすべてのAPIは、準拠および動作テストでカバーされており、サービスミックスはローカル開発および統合テストに合わせて調整されています。 S3 RESTプロトコル · XML SQS Queryプロトコル · XML SNS Queryプロトコル · XML EventBridge JSONプロトコル EventBridge Scheduler JSONプロトコル SSM JSONプロトコル DynamoDB JSONプロトコル IAM Queryプロトコル STS Queryプロトコル Lambda RESTプロトコル · JSON Secrets Manager JSONプロトコル CloudWatch Logs JSONプロトコル KMS JSONプロトコル CloudFormation Queryプロトコル SES REST + Queryプロトコル Cognito User Pools JSONプロトコル Kinesis JSONプロトコル RDS Queryプロトコル ElastiCache Queryプロトコル MemoryDB JSON 1.1プロトコル EKS REST-JSONプロトコル Step Functions JSONプロトコル API Gateway v1 (REST) RESTプロトコル · JSON API Gateway v2 RESTプロトコル · JSON Bedrock RESTプロトコル · JSON Bedrock Runtime RESTプロトコル · JSON Bedrock Agent RESTプロトコル · JSON Bedrock Agent Runtime RESTプロトコル · JSON ECR RESTプロトコル · JSON ECS JSONプロトコル Elastic Load Balancing v2 Queryプロトコル CloudFront RESTプロトコル · XML Route 53 RESTプロトコル · XML ACM JSONプロトコル ACM PCA JSONプロトコル Application Auto Scaling JSONプロトコル WAF v2 JSONプロトコル Athena JSONプロトコル Glue JSONプロトコル Cognito Identity JSONプロトコル CloudWatch (Metrics & Alarms) Queryプロトコル Firehose JSONプロトコル EC2 Queryプロトコル · XML Organizations JSONプロトコル Cloud Control API JSONプロトコル EventBridge Pipes RESTプロトコル · JSON RDS Data API RESTプロトコル · JSON Aurora DSQL RESTプロトコル · JSON Resource Groups RESTプロトコル · JSON Resource Groups Tagging API JSONプロトコル fakecloudを使用しているユーザー 初期段階であり、リストは始まったばかりです。CI、ローカル開発、またはテストでfakecloudを使用していますか?GitHubでチームを追加してください。以下の数字はパッケージダウンロード数とスター数であり、ユーザー数ではありません。採用者を見る · チームを追加する