b2c-ecdn について
Salesforce B2C Commerceの運用担当者がb2c CLIでeCDNを管理するためのスキルです。ゾーン、証明書、キャッシュ、セキュリティ設定に加え、トラフィックルールの例を扱います。
主な機能
- 01CDNゾーンの一覧表示と作成
- 02証明書管理とホスト名検証
- 03パスまたはタグによるキャッシュ削除
- 04レート制限とセキュリティ設定
- 05速度最適化設定の調整
活用シーン
- 01ストアフロント用CDNゾーンの作成
- 02指定パスのキャッシュ削除
- 03チェックアウトパスへのレート制限設定
- 04HTTPSとTLS設定の更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ salesforcecommercecloud/ b2c-developer-tooling --skill b2c-ecdnインストール後、Claude Code で/b2c-ecdnを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/trigger-evals.jsonreferences/ADVANCED.mdSECURITY.md詳細
B2C eCDN スキル
b2c CLI プラグインを使用して、eCDN(組み込みコンテンツ配信ネットワーク)のゾーン、証明書、セキュリティ設定などを管理します。
ルールを変更する前にエッジトラフィック(ボット、不正利用、エッジでの 403/429 の急増、SCAPI/SLAS の不正利用など)を調査する場合(影響のある送信元、その運営者、該当するルールを確認する場合)は、b2c-ops:b2c-edge-traffic-triage ランブック(MCP:skill://b2c-ops/b2c-edge-traffic-triage/SKILL.md)を使用してください。
ヒント:
b2cがグローバルにインストールされていない場合は、代わりにnpx @salesforce/b2c-cliを使用してください(例:npx @salesforce/b2c-cli ecdn zones list)。
設定
tenantId、clientId、clientSecret などの値は、dw.json/SFCC_* 環境変数/アクティブなインスタンス/設定プラグインから解決されます。以下の例は最小限の使用方法を示しています。設定済みの値を上書きする場合にのみフラグを追加してください。通常、--client-id/--client-secret/--tenant-id を渡す必要はありません。必須の値が不足している場合、CLI は対象のフラグ、環境変数、設定キーを示す、対処方法が明確なエラーを出力します。
b2c setup inspect を実行すると、解決された設定と各値の取得元を確認できます(スクリプトで使用する場合は --json を指定します。シークレットはデフォルトでマスクされます)。優先順位のルールとトラブルシューティングについては、b2c-cli:b2c-config スキルを参照してください。
前提条件
- OAuth 認証情報(読み取り操作用の
sfcc.cdn-zonesスコープ付き) - OAuth 認証情報(書き込み操作用の
sfcc.cdn-zones.rwスコープ付き) - B2C Commerce 組織のテナント ID(設定から取得するか、
--tenant-idで指定)
例
CDN ゾーンの一覧表示
# list all CDN zones for the configured tenant (pages through every zone)
b2c ecdn zones list
# JSON output
b2c ecdn zones list --json
# target a different tenant than the active config
b2c ecdn zones list --tenant-id zzxy_prd
ストアフロントゾーンの作成
# create a new storefront zone
b2c ecdn zones create --domain-name example.com
キャッシュのパージ
# purge cache for specific paths
b2c ecdn cache purge --zone my-zone --path /products --path /categories
# purge by cache tags
b2c ecdn cache purge --zone my-zone --tag product-123 --tag category-456
証明書の管理
# list certificates for a zone
b2c ecdn certificates list --zone my-zone
# add a new certificate
b2c ecdn certificates add --zone my-zone --hostname www.example.com --type custom --certificate-file ./cert.pem --private-key-file ./key.pem
# validate a custom hostname
b2c ecdn certificates validate --zone my-zone --custom-hostname-id abc123
レート制限ルールの管理
# list rate limiting rules
b2c ecdn rate-limit list --zone my-zone
# create a rate limiting rule
b2c ecdn rate-limit create --zone my-zone --description "Rate limit /checkout" --expression '(http.request.uri.path matches "^/checkout")' --characteristics cf.unique_visitor_id --action block --period 60 --requests-per-period 50 --mitigation-timeout 600
# get a rule
b2c ecdn rate-limit get --zone my-zone --rule-id 2c0fc9fa937b11eaa1b71c4d701ab86e
# update a rule
b2c ecdn rate-limit update --zone my-zone --rule-id 2c0fc9fa937b11eaa1b71c4d701ab86e --requests-per-period 100
# delete a rule
b2c ecdn rate-limit delete --zone my-zone --rule-id 2c0fc9fa937b11eaa1b71c4d701ab86e --force
セキュリティ設定
# get security settings
b2c ecdn security get --zone my-zone
# update security settings
b2c ecdn security update --zone my-zone --security-level medium --always-use-https --tls13
速度設定
# get speed optimization settings
b2c ecdn speed get --zone my-zone
# update speed settings
b2c ecdn speed update --zone my-zone --brotli on --http3 on --webp on
その他のトピック
あまり使用されない eCDN 機能については、リファレンスファイルを参照してください。
- SECURITY.md — WAF(v1 および v2)、カスタムファイアウォールルール、レート制限、Page Shield(CSP ポリシー、スクリプト検出、通知 Webhook)
- ADVANCED.md — Logpush ジョブ、MRT ルーティングルール、mTLS 証明書、暗号スイート設定、オリジンヘッダーの変更
設定の上書き
テナント ID は、フラグまたは環境変数で上書きできます。
--tenant-id/SFCC_TENANT_ID/ dw.json 内のtenantId
--zone フラグには、次のいずれかを指定できます。
- ゾーン ID(32 文字の 16 進数文字列)
- ゾーン名(人が読める名前。組織内のすべてのゾーンを対象に、大文字と小文字を区別せずに検索します。最初の 25 件以降も含みます)
注意事項
Forbiddenは、そのゾーンで機能が利用できないか、--zoneに指定した ID がこの組織に属していないことを示します。waf groups/waf rules(WAF v1)は、通常Not Foundで失敗します(WAF v2 のゾーンの場合)。waf rulesetsを使用してください。firewall create --actions log(または--enabled false)は、ルールを適用せずに登録します。確認後、managed_challenge/blockに切り替えてください。
SCAPI(API)ゾーン
zones list には <realm>.api.commercecloud.salesforce.com が含まれます(BM では <shortCode>.api... と表示されます)。このゾーンは、ヘッドレスストアフロントを含む SCAPI/SLAS トラフィックを処理します。
- 対応機能:
firewall、rate-limit。 Forbidden(スコープの問題ではなく、プラットフォームによる管理):security、speed、waf rulesets、certificates、cipher-suites、mrt-rules、page-shield、logpush、origin-headers。- レルム内のすべてのインスタンス(dev/stg/prd)で共有されます。パス内の組織 ID を使って、ルールを 1 つのインスタンスに限定してください。例:
(http.request.uri.path contains "/organizations/f_ecom_zzxy_prd/") and ...。スコープを指定しないルールは、すべてのインスタンスに適用されます。
OAuth スコープ
| 操作 | 必要なスコープ |
|---|---|
| 読み取り操作 | sfcc.cdn-zones |
| 書き込み操作 | sfcc.cdn-zones.rw |
その他のコマンド
ecdn トピックで使用できるコマンドとオプションの全一覧については、b2c ecdn --help を参照してください。