{"id":43177564,"url":"https://github.com/poad/pulumi-example","last_synced_at":"2026-02-01T03:14:32.768Z","repository":{"id":334545554,"uuid":"1141771696","full_name":"poad/pulumi-example","owner":"poad","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-25T12:56:24.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-26T04:18:17.861Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/poad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-25T12:03:33.000Z","updated_at":"2026-01-25T12:56:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/poad/pulumi-example","commit_stats":null,"previous_names":["poad/pulumi-example"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/poad/pulumi-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poad%2Fpulumi-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poad%2Fpulumi-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poad%2Fpulumi-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poad%2Fpulumi-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/poad","download_url":"https://codeload.github.com/poad/pulumi-example/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poad%2Fpulumi-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28965635,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T02:14:24.993Z","status":"ssl_error","status_checked_at":"2026-02-01T02:13:55.706Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-01T03:14:31.955Z","updated_at":"2026-02-01T03:14:32.763Z","avatar_url":"https://github.com/poad.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pulumi-example\n\nAWS CDKとPulumiを使用した複数のインフラストラクチャ・アズ・コード（IaC）プロジェクトを含むモノレポです。\n\n## プロジェクト概要\n\nこのリポジトリでは、AWSにおけるインフラストラクチャ・アズ・コード（IaC）の2つの実装手法を示しています：\n\n| プロジェクト | フレームワーク | 目的 | 言語 |\n| --------- | ----------- | --------- | ---------- |\n| **s3-bucket** | AWS CDK | CloudFormationを使用したS3バケットの作成・管理 | TypeScript |\n| **pulumi-start-aws** | Pulumi | プログラムによるAWSリソースのプロビジョニング | TypeScript |\n\n## リポジトリ構成\n\n```text\npulumi-example/\n├── s3-bucket/                    # AWS CDK TypeScriptプロジェクト\n│   ├── bin/                      # CDKアプリのエントリーポイント\n│   ├── lib/                      # スタック・コンストラクト定義\n│   ├── test/                     # ユニットテスト（vitest）\n│   ├── package.json\n│   ├── tsconfig.json\n│   ├── eslint.config.ts\n│   └── cdk.json\n│\n├── pulumi-start-aws/             # Pulumi TypeScriptプロジェクト\n│   ├── index.ts                  # Pulumiメインプログラム\n│   ├── Pulumi.yaml               # プロジェクトメタデータ\n│   ├── package.json\n│   ├── tsconfig.json\n│   ├── .oxlintrc.json            # Oxlint設定\n│   └── .oxfmtrc.json             # Oxfmt設定\n│\n├── package.json                  # ルートワークスペース設定\n├── pnpm-workspace.yaml           # モノレポワークスペース定義\n├── .editorconfig                 # エディタ設定\n├── AGENTS.md                     # AIエージェント用コーディングガイドライン\n└── README.md                     # このファイル\n```\n\n## クイックスタート\n\n### 前提条件\n\n- **Node.js**: LTS バージョン以降\n- **pnpm**: バージョン10以上（`pnpm install -g pnpm`）\n- **AWS認証情報**: `aws configure` または環境変数で設定済み\n- **Pulumi CLI**（オプション、pulumi-start-awsのみで使用）: \u003chttps://www.pulumi.com/docs/get-started/install/\u003e\n\n### インストール\n\n```bash\n# リポジトリのクローン\ngit clone \u003crepository-url\u003e\ncd pulumi-example\n\n# すべての依存関係をインストール\npnpm install\n```\n\n## ワークスペースコマンド\n\n### インストール・ビルド\n\n```bash\n# すべてのワークスペースの依存関係をインストール\npnpm install\n\n# すべてのプロジェクトをビルド\npnpm -r --if-present build\n\n# 特定のプロジェクトをビルド\npnpm -C s3-bucket build\npnpm -C pulumi-start-aws build\n```\n\n### リント・フォーマッティング\n\n```bash\n# すべてのプロジェクトをリント\npnpm -r --if-present lint\n\n# 特定のプロジェクトをリント\npnpm -C s3-bucket lint                 # ESLint\npnpm -C pulumi-start-aws lint          # Oxlint + Oxfmt\n\n# フォーマット・リントの問題を修正\npnpm -C pulumi-start-aws lint-fix\n```\n\n### テスト実行\n\n```bash\n# すべてのテストを実行\npnpm -r --if-present test\n\n# s3-bucketでvitestを使用したテスト実行\npnpm -C s3-bucket test\n\n# 特定のテストファイルを実行\npnpm -C s3-bucket test -- test/s3-bucket.test.ts\n\n# パターンに一致するテストを実行\npnpm -C s3-bucket test -- --grep \"pattern\"\n```\n\n## プロジェクト詳細\n\n### s3-bucket（AWS CDK）\n\nCloudFormationを使用したインフラストラクチャ・アズ・コードのAWS CDKプロジェクト。\n\n**主要なコマンド:**\n\n```bash\n# TypeScriptをJavaScriptにコンパイル\npnpm -C s3-bucket build\n\n# 開発時のウォッチモード\npnpm -C s3-bucket watch\n\n# 合成されたCloudFormationテンプレートを表示\npnpm -C s3-bucket cdk synth\n\n# AWSにデプロイ（AWS認証情報が必要）\npnpm -C s3-bucket cdk deploy\n\n# デプロイ済みの状態と現在の状態を比較\npnpm -C s3-bucket cdk diff\n\n# テストを実行\npnpm -C s3-bucket test\n```\n\n**スタック:** `S3BucketStack` は以下の設定で `pulumi-states-store` というプライベートS3バケットを作成します：\n\n- バージョニング：無効\n- サーバー側暗号化：S3マネージド\n- スタック削除時にオブジェクトを自動削除\n- アクセス：プライベートのみ\n\n**詳細:** [s3-bucket/README.md](./s3-bucket/README.md) を参照\n\n### pulumi-start-aws（Pulumi）\n\nTypeScriptを使用したインフラストラクチャ・アズ・コードのPulumiプロジェクト。\n\n**主要なコマンド:**\n\n```bash\n# フォーマットをチェック\npnpm -C pulumi-start-aws fmt:check\n\n# フォーマットを修正\npnpm -C pulumi-start-aws fmt\n\n# リントをチェック\npnpm -C pulumi-start-aws oxlint\n\n# リント問題を修正\npnpm -C pulumi-start-aws oxlint:fix\n\n# フォーマット・リント完全実行\npnpm -C pulumi-start-aws lint\n\n# 変更をプレビュー\npulumi preview --stack dev\n\n# インフラストラクチャをデプロイ\npulumi up --stack dev\n\n# リソースを削除\npulumi destroy --stack dev\n```\n\n**プログラム:** S3バケットを作成し、その名前を他のスタックから参照できるようエクスポートします。\n\n**設定:**\n\n- `Pulumi.yaml` — プロジェクトメタデータ\n- `Pulumi.dev.yaml` — `dev` 環境のスタック設定\n- `pulumi config set キー 値` で編集可能\n\n**詳細:** [pulumi-start-aws/README.md](./pulumi-start-aws/README.md) を参照\n\n## コード規約・ガイドライン\n\nこのリポジトリはTypeScriptと品質管理に関する厳格な標準に従っています：\n\n- **TypeScript**: ストリクトモード有効、完全型チェック\n- **フォーマッティング**: 2スペースインデント、LFで改行（editorconfig）\n- **リント**: ESLint（s3-bucket）と Oxlint（pulumi-start-aws）\n- **インポート**: ES6モジュール構文、名前付きエクスポート推奨\n- **命名規則**: クラスはPascalCase、関数・変数はcamelCase\n- **エラーハンドリング**: Try-catchパターン、型付きエラーレスポンス\n- **ドキュメント**: エクスポートされたアイテムにはJSDocコメント\n\n**詳細コーディングガイドラインは [AGENTS.md](./AGENTS.md) を参照してください。**\n\n## CI/CD パイプライン\n\n`main` ブランチへのプッシュおよびプルリクエストで自動実行されます：\n\n1. pnpmで依存関係をインストール\n2. すべてのリントチェックを実行\n3. すべてのプロジェクトをビルド\n\n`.github/workflows/ci.yml` で設定\n\n## 開発ワークフロー\n\n### s3-bucket での開発\n\n```bash\ncd s3-bucket\npnpm install\npnpm build\npnpm test\npnpm lint\n```\n\n### pulumi-start-aws での開発\n\n```bash\ncd pulumi-start-aws\npnpm install\npnpm fmt:check \u0026\u0026 pnpm oxlint\npulumi preview\npulumi up  # デプロイする場合\n```\n\n## 参考資料\n\n- [AWS CDK ドキュメント](https://docs.aws.amazon.com/cdk/latest/guide/)\n- [Pulumi ドキュメント](https://www.pulumi.com/docs/)\n- [AWS SDK for TypeScript](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/)\n- [TypeScript ハンドブック](https://www.typescriptlang.org/docs/)\n\n## ライセンス\n\n詳細は [LICENSE](./LICENSE) ファイルを参照してください。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoad%2Fpulumi-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpoad%2Fpulumi-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoad%2Fpulumi-example/lists"}