mcpField
A
app-platform-networking

app-platform-networking

github.com/digitalocean-labsクラウド・DevOps3892 回インストール3 日前に更新
リポジトリ

app-platform-networking について

DigitalOcean App Platform のネットワーク設定を支援するスキルです。ドメイン、ルーティング、CORS、VPC、エグレス IP の設定例とトラブルシューティングを扱います。

主な機能

  1. 01カスタムドメインと DNS の設定
  2. 02パスおよびサブドメインルーティング
  3. 03CORS 設定リファレンス
  4. 04VPC と信頼済み接続元の設定
  5. 05専用エグレス IP の設定
  6. 06ネットワーク問題のトラブルシューティング

活用シーン

  1. 01複数サービスを同一ドメイン配下でルーティング
  2. 02サブドメイン間の API リクエストを設定
  3. 03VPC 経由でデータベースに安全に接続
  4. 04ファイアウォールでエグレス IP を許可リストに登録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/digitalocean-labs/do-app-platform-skills --skill app-platform-networking

インストール後、Claude Code で/app-platform-networkingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
reference/
complete-patterns.md
cors-configuration.md
domains-dns.md
ingress-routing.md
static-ips-egress.md
vpc-trusted-sources.md

詳細

App Platform ネットワーキングスキル

ドメイン、ルーティング、CORS、VPC、静的 IP、サービス間通信を設定します。

クイック判断

What networking do you need?
├── Custom domain?
│   └── YES → See domains-dns.md
│
├── Multiple services on one domain?
│   ├── Different paths (/api, /app) → Path-based routing
│   └── Different subdomains (api.*, app.*) → Subdomain routing
│
├── Frontend calling API across origins?
│   └── YES → CORS configuration
│
├── Secure database connectivity?
│   └── YES → VPC + trusted sources
│
└── Need static outbound IP?
    └── YES → Dedicated egress

使用するタイミング

シナリオこのスキルが必要
スタータードメインのみいいえ
カスタムドメインはい
複数のサービスで異なるパスを使用はい
複数のサブドメインはい
サブドメイン間の API 呼び出し(CORS)はい
VPC 経由の安全なデータベースアクセスはい
ファイアウォールの許可リスト設定(送信 IP)はい

クイックリファレンス

機能App Spec フィールド例
カスタムドメインdomains[].domainexample.com
ワイルドカードdomains[].wildcardtrue
パスルーティングingress.rules[].match.path.prefix/api
サブドメインルーティングingress.rules[].match.authority.exactapi.example.com
CORSingress.rules[].corsリファレンスを参照
VPCvpc.idUUID
専用送信 IPegress.typeDEDICATED_IP

パスベースのルーティング(クイックスタート)

ingress:
  rules:
    - component: { name: api }
      match: { path: { prefix: /api } }

    - component: { name: frontend }
      match: { path: { prefix: / } }

ルールの順序が重要です: 具体的なルールを先に指定します。

詳細ガイド: ingress-routing.md を参照してください。


サブドメインルーティング(クイックスタート)

domains:
  - domain: example.com
    type: PRIMARY
    wildcard: true
    zone: example.com

ingress:
  rules:
    - component: { name: api }
      match:
        authority: { exact: api.example.com }
        path: { prefix: / }

    - component: { name: app }
      match:
        authority: { exact: app.example.com }
        path: { prefix: / }

詳細ガイド: domains-dns.md を参照してください。


CORS(クイックスタート)

ingress:
  rules:
    - component: { name: api }
      match: { path: { prefix: /api } }
      cors:
        allow_origins:
          - exact: https://app.example.com
        allow_methods: [GET, POST, PUT, DELETE, OPTIONS]
        allow_headers: [Content-Type, Authorization]
        allow_credentials: true

注意: allow_credentials: true の場合は、正確なオリジンのみを使用してください(正規表現は使用できません)。

詳細ガイド: cors-configuration.md を参照してください。


VPC + 信頼済みソース(クイックスタート)

vpc:
  id: your-vpc-uuid

VPC CIDR の許可リスト設定(推奨):

doctl vpcs get $VPC_ID --format IPRange  # e.g., 10.126.0.0/20
doctl databases firewalls append $CLUSTER_ID --rule ip_addr:10.126.0.0/20
設定信頼済みソースのルール
パブリックのみapp:$APP_ID
VPC 有効ip_addr:<vpc-cidr>

重要: バインド可能な変数は、VPC を使用していてもパブリックホスト名を返します。プライベート URL を使用してください:

doctl databases connection --private <cluster-id> --format URI

詳細ガイド: vpc-trusted-sources.md を参照してください。


リファレンスファイル


よくある問題

問題解決方法
ドメインが解決されないDNS レコードを確認し、伝播に最大 72 時間かかることを見込んでください
SSL 証明書エラーletsencrypt.org + pki.goog の CAA レコードを追加します
CORS プリフライトに失敗するallow_methods に OPTIONS を追加します
VPC 接続が拒否されるアプリベースのルールではなく、VPC CIDR の許可リスト設定を使用します
間違ったコンポーネントが応答するルールの順序を入れ替えます(具体的なルールを先にします)

他のスキルとの連携

  • → designer:アプリ仕様にドメイン/イングレスを追加します
  • → troubleshooting:DNS、CORS、VPC の問題をデバッグします
  • → postgres:マネージドデータベースへの VPC 接続
  • → deployment:ネットワーキングの変更をデプロイします

コメント