5.17. プロダクトのインポート
移行元および宛先の 3scale インスタンスにネットワーク接続がない場合に、同じ 3scale プロダクトを複数の 3scale インスタンスで使用するには、ある 3scale インスタンスから 3scale プロダクトをエクスポートし、別の 3scale インスタンスにインポートします。プロダクトをインポートするには、toolbox 3scale product import
コマンドを実行します。
2 つの 3scale インスタンスにネットワーク接続がある場合、両方の 3scale インスタンスで同じ 3scale 製品を使用するには、toolbox 3scale copy
コマンド を使用します。
説明
3scale プロダクトをインポートすると、toolbox は、Product
および Backend
カスタムリソース定義 (CRD) に準拠する、.yaml
形式のシリアライズされたプロダクト定義を想定します。toolbox 3scale product export
コマンドを実行するか、.yaml
形式のプロダクト定義を手動で作成して、この .yaml
コンテンツを取得できます。
プロダクトをエクスポートした場合、インポートされた定義にはエクスポートされた内容が含まれます。これには以下が含まれます。
- プロダクトにリンクされたバックエンド。
- リンクされたバックエンドのメトリクス、メソッド、およびマッピングルール。
- アプリケーションプランで定義される制限および課金ルール。
- 制限および課金ルールで参照されるメトリクスおよびメソッド。
必要であれば、別の 3scale インスタンスにインポートする前に、エクスポートされた .yaml
出力を変更することができます。
import
コマンドはべきとう性を持ちます。これを何回でも実行して同じプロダクトをインポートしても、作成される 3scale 設定は同じままとなります。インポートプロセス中にエラーが発生した場合は、コマンドを再実行しても安全性に問題はありません。import
プロセスが 3scale インスタンスでプロダクトを見つけられない場合、プロダクトが作成されます。また、.yaml
定義で定義され、3scale インスタンスで見つけられないメトリクス、メソッド、またはバックエンドも作成されます。
3scale プロダクトのインポートは、以下の状況を対象としています。
-
移行元および宛先 3scale インスタンス間の接続がない。たとえば、ネットワークに重大な制限があり、複数の 3scale インスタンスで同じプロダクトを使用するときに toolbox の
3scale copy
コマンドを実行できない場合などです。 -
Git またはその他のソースコントロールシステムを使用して、
.yaml
形式で 3scale プロダクト定義を維持する。
3scale toolbox の export
および import
コマンドは、プロダクト定義のバックアップおよび復元にも役立つことがあります。
形式
import
コマンドを実行するには、この形式を使用します。
3scale product import [<options>] <remote>
import
コマンドは、.yaml
の入力を stdin
またはファイルから取得します。デフォルトは stdin
です。
以下のオプションを指定することができます。
-
-f
または--file
の後にファイル名を指定すると、指定した.yaml
ファイルから入力が取得されます。このファイルには、3scale のProduct
およびBackend
CRD に準拠する 3scale プロダクト定義が含まれる必要があります。 -
-o
または--output
の後にjson
またはyaml
を指定すると、指定した形式でインポートされたものがリストされたレポートが出力されます。デフォルトの出力形式はjson
です。
<remote>
を、プロダクトのインポート先の 3scale インスタンスに関連付けられた 3scale プロバイダーアカウントエイリアスまたは URL に置き換えます。これを指定する方法の詳細については、リモートアクセスクレデンシャルの管理 を参照してください。
例
以下のコマンドは、petstore-product.yaml
で定義されたプロダクトを、my-3scale-2
プロバイダーアカウントに関連付けられた 3scale インスタンスにインポートします。デフォルトでは、インポートされた内容のレポートは .json
形式になります。
3scale product import -f petstore-product.yaml my-3scale-2
import
コマンドは、インポートされたアイテムを一覧表示するレポートを出力します。以下に例を示します。
api: product_id: 2555417888846 backends: backend_01: backend_id: 73310 missing_metrics_created: 1 missing_methods_created: 1 missing_mapping_rules_created: 1 backend_02: backend_id: 73311 missing_metrics_created: 0 missing_methods_created: 2 missing_mapping_rules_created: 1 missing_methods_created: 1 missing_metrics_created: 1 missing_mapping_rules_created: 2 missing_application_plans_created: 2 application_plans: basic: application_plan_id: 2357356246461 missing_limits_created: 7 missing_pricing_rules_created: 7 unlimited: application_plan_id: 2357356246462 missing_limits_created: 1 missing_pricing_rules_created: 0
シリアライズされたプロダクト定義の例は、プロダクトのエクスポート の最後にあります。