Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerAnypoint Platform には、DataGraph 用のコマンドラインインターフェース (CLI) が用意されています。CLI は、対話型シェルと標準 CLI モードの両方をサポートしています。
DataGraph CLI を使用して、以下を管理します。
CLI を使用して API ソースを DataGraph に追加する前に、「DataGraph CLI および API 拡張機能の使用」を確認してください。
Anypoint CLI の前提条件、インストール、認証の手順を確認してください。
| コマンド | 説明 |
|---|---|
API ソースを追加する |
|
API ソースを昇格する |
|
API ソースを更新する |
|
統合スキーマに対する API コールをスケーリングする |
|
統合スキーマをダウンロードする |
|
API ソースを削除する |
|
API ソースを取得する |
|
すべての API ソースをリストする |
|
DataGraph に関する情報を返す |
|
統合スキーマの API ソースを検証する |
> datagraph sources add <g/a/v>
|
DataGraph では、 |
このコマンドは、<g/a/v> で指定された API ソースを追加します。ここで、g はグループ ID、a はアセット ID、v は API ソースのバージョン ID です。グループ ID は省略可能です。グループ ID を指定しない場合、このコマンドは現在の組織 ID を使用します。
このコマンドでは、デフォルトの --help、-f/--fields、-o/--output、--verbose オプション以外に次のオプションも使用できます。
| オプション | 説明 |
|---|---|
|
API が公開の場合に使用します。 |
|
基本認証ヘッダー、またはユーザー名とパスワードを渡して、API に対する認証を行う場合に使用します。
|
|
OAuth 2.0 の
|
|
認証ヘッダーを渡して API に対する認証を行う場合に使用します。
|
|
カスタムヘッダーパラメーターと値を渡して API に対する認証を行う場合に使用します。
|
|
クエリパラメーターと値を渡して API に対する認証を行う場合に使用します。
|
|
バックエンド API の URL を設定します。 |
|
現在の環境で実行されているインスタンスに基づいて、バックエンド API の URL を自動的に検出します。複数の API が実行されている場合、DataGraph は最初の URL を使用します。 |
|
API のトラストストアに追加する認証機関 (CA) ファイルのカンマ区切りリストを指定します ( |
|
相互トランスポートレイヤーセキュリティ (mTLS) に使用するクライアント証明書のファイル名を指定します ( |
|
mTLS に使用する非公開キーのファイル名を指定します ( |
|
暗号化された非公開キーを復号化するパスワードを指定します。 |
|
API 仕様の拡張機能で行われた有効な編集を適用し、無効な編集を無視するために使用します。 |
| コマンドラインで定義されたすべてのヘッダーとクエリパラメーター、およびすべてのヘッダーとクエリパラメーターファイルが追加されます。反復キーがある場合、コマンドラインで指定された値が優先されます。 |
datagraph sources add 18dc11ee-4a09-4aae-9c6c-4371a87eafa8/product-api/1.0.0/ --url http://test.com
{
"apiVersion": "v1",
"assetId": "product-api",
"createDate": "2022-05-20T18:05:41",
"endpoint": "http://test.com",
"environmentId": "<envID>",
"groupId": "<groupID>",
"name": "Product API",
"organizationId": "<orgID>",
"securityScheme": "NO_AUTH",
"sourceId": "deca7be1-c299-4441-bc7b-dba733e3a11f",
"updateDate": "2022-05-20T18:05:41",
"version": "1.0.0",
"origin": "CLI"
}
> datagraph sources promote <sourceId> <target-EnvID>
このコマンドは、API ソース <sourceId> を対象環境 <targetEnv> に昇格します。
このコマンドでは、デフォルトの --help、-f/--fields、-o/--output、--verbose オプション以外に次のオプションも使用できます。
| オプション | 説明 |
|---|---|
|
API が公開の場合に使用します。 |
|
基本認証ヘッダー、またはユーザー名とパスワードを使用して、API に対する認証を行う場合に使用します。
|
|
OAuth 2.0 の
|
|
認証ヘッダーを渡して API に対する認証を行う場合に使用します。
|
|
カスタムヘッダーパラメーターと値を渡して API に対する認証を行う場合に使用します。
|
|
クエリパラメーターと値を渡して API に対する認証を行う場合に使用します。
|
|
バックエンド API の URL を設定します。 |
|
現在の環境で実行されているインスタンスに基づいて、バックエンド API の URL を自動的に検出します。複数の API が実行されている場合、DataGraph は最初の URL を使用します。 |
|
API のトラストストアに追加する CA ファイルのリストを指定します。 |
|
mTLS に使用するクライアント証明書を指定します。 |
|
mTLS に使用する非公開キーを指定します。 |
|
暗号化された非公開キーを復号化するパスワードを指定します。 |
|
すべての CA 証明書を削除します。 |
|
クライアント証明書、非公開キー、非公開キーパスワード情報を削除します。 |
| コマンドラインで定義されたすべてのヘッダーとクエリパラメーター、およびすべてのヘッダーとクエリパラメーターファイルが追加されます。反復キーがある場合、コマンドラインで指定された値が優先されます。 |
この例では、promote コマンドの実行後に environmentId が変更されます。
datagraph sources promote d1d27987-939a-4b41-b3ef-411568ee5bdd e7e8da65-9cf1-569e-c9d2-brd2r0rc7rd6 --auth-none
{
"apiVersion": "1.0",
"assetId": "order-e2e",
"createDate": "2022-05-27T18:56:03",
"endpoint": "http://test.com",
"environmentId": "e7e8da65-9cf1-569e-c9d2-brd2r0rc7rd6",
"groupId": "<groupID>",
"name": "Order E2E",
"organizationId": "<orgID>",
"securityScheme": "NO_AUTH",
"sourceId": "1ff021b3-9296-43fd-9d64-2f9027c25740",
"updateDate": "2022-05-27T18:56:03",
"version": "1.0.0",
"origin": "CLI"
}
> datagraph sources update <sourceId>
|
DataGraph では、 |
このコマンドは、API ソース <sourceId> のバージョンを更新します。
このコマンドでは、デフォルトの --help、-f/--fields、-o/--output、--verbose オプション以外に次のオプションも使用できます。
| オプション | 説明 |
|---|---|
|
API が公開の場合に使用します。 |
|
基本認証ヘッダー、またはユーザー名とパスワードの両方を渡して、API に対する認証を行う場合に使用します。
|
|
OAuth 2.0 の
|
|
認証ヘッダーを渡して API に対する認証を行う場合に使用します。
|
|
カスタムヘッダーパラメーターと値を渡して API に対する認証を行う場合に使用します。
|
|
クエリパラメーターと値を渡して API に対する認証を行う場合に使用します。
|
|
バックエンド API の URL を設定します。 |
|
現在の環境で実行されているインスタンスに基づいて、バックエンド API の URL を自動的に検出します。複数の API が実行されている場合、DataGraph は最初の URL を使用します。 |
|
API のトラストストアに追加する CA ファイルのリストを指定します。 |
|
mTLS に使用するクライアント証明書を指定します。 |
|
mTLS に使用する非公開キーを指定します。 |
|
暗号化された非公開キーを復号化するパスワードを指定します。 |
|
すべての CA 証明書を削除します。 |
|
クライアント証明書、非公開キー、非公開キーパスワード情報を削除します。 |
|
API ソースの現在のバージョンに存在する編集を、API 仕様から抽出する代わりに保持します。 |
|
API ソースの取得元を CLI に変更します。API ソースの取得元が DataGraph UI である場合、このオプションを使用して、UI の編集を API 仕様の編集で上書きします。 |
|
API 仕様の拡張機能で行われた有効な編集を適用し、無効な編集を無視するために使用します。 |
| コマンドラインで定義されたすべてのヘッダーとクエリパラメーター、およびすべてのヘッダーとクエリパラメーターファイルが追加されます。反復キーがある場合、コマンドラインで指定された値が優先されます。 |
次のコマンドは、ソース API の URL を更新し、その認証を auth-none から auth-basic に変更して、クライアント ID とシークレットを追加します。
> datagraph sources update b6cb82a6-51dc-4968-861a-aa04447c3442 --url http://test2.com --version 1.0.0 --auth-basic --credentials client-test:client-secret
{
"apiVersion": "v1",
"assetId": "product-api",
"createDate": "2022-05-20T18:56:57Z",
"endpoint": "http://test2.com",
"environmentId": "<envID>",
"groupId": "<groupID>",
"name": "Product API",
"organizationId": "<orgID>",
"securityScheme": "BASIC",
"sourceId": "b6cb82a6-51dc-4968-861a-aa04447c3442",
"updateDate": "2022-05-27T18:31:39",
"version": "1.0.0",
"origin": "CLI"
}
> datagraph scale <concurrent-api-calls>
このコマンドでは、統合スキーマで許可される同時 API コール数を設定できます。API コール数を増減することで、必要に応じて処理するワークロードを増やし、コンシュームを最適化できます。
このコマンドはデフォルトのオプション --help、-f/--fields、-o/--output、--verbose を受け入れます。
> datagraph schema-download
このコマンドは、現在の環境の統合スキーマをダウンロードします。
このコマンドはデフォルトのオプション --help、-f/--fields、-o/--output、--verbose を受け入れます。
directive @key(fields: String) on OBJECT
"An Item"
type Item {
itemId: Int!
"A Product"
product: OrderProduct!
quantity: Int!
}
"An Order"
type Order {
items: [Item!]!
orderId: String!
customerId: String!
}
"A Product"
type OrderProduct {
productId: String!
name: String!
}
type Query {
orders(ordersCount: Int): [Order!]
ordersByOrderId(orderId: String!): Order
ordersProductsByOrderId(productsCounts: Int, orderId: String!): [OrderProduct!]
}
> datagraph sources delete <sourceId>
このコマンドは、指定された API ソースを削除します。
このコマンドはデフォルトのオプション --help、-f/--fields、-o/--output、--verbose を受け入れます。
> datagraph sources get <sourceId>
このコマンドは、指定された API ソースを取得します。
このコマンドはデフォルトのオプション --help、-f/--fields、-o/--output、--verbose を受け入れます。
{
"apiVersion": "1.0",
"assetId": "order-e2e",
"createDate": "2022-05-20T16:49:00Z",
"hasKeystore": false,
"endpoint": "http://test.com",
"environmentId": "<envID>",
"groupId": "<groupID>",
"name": "Order E2E",
"organizationId": "<orgID>",
"hasTruststore": false,
"securityScheme": "NO_AUTH",
"sourceId": "d1d27987-939a-4b41-b3ef-411568ee5bdd",
"updateDate": "2022-05-20T16:49:00Z",
"version": "1.0.0",
"origin": "CLI"
}
> datagraph sources list
このコマンドは、現在の環境のすべての API ソースをリストします。
このコマンドはデフォルトのオプション --help、-f/--fields、-o/--output、--verbose を受け入れます。
{
"apiVersion": "1.0",
"assetId": "order-e2e",
"createDate": "2022-05-20T16:49:00.000Z",
"endpoint": "http://test.com",
"environmentId": "<envID>",
"groupId": "<groupID>",
"name": "Order E2E",
"organizationId": "<orgID>",
"securityScheme": "NO_AUTH",
"sourceId": "d1d27987-939a-4b41-b3ef-411568ee5bdd",
"updateDate": "2022-05-20T16:49:00.000Z",
"version": "1.0.0",
"origin": "CLI"
},
{
"apiVersion": "v1",
"assetId": "product-api",
"createDate": "2022-05-20T18:05:41.000Z",
"endpoint": "http://test.com",
"environmentId": "<envID>",
"groupId": "<groupID>",
"name": "Product API",
"organizationId": "<orgID>",
"securityScheme": "NO_AUTH",
"sourceId": "deca7be1-c299-4441-bc7b-dba733e3a11f",
"updateDate": "2022-05-20T18:05:41.000Z",
"version": "1.0.0",
"origin": "CLI"
}
> datagraph describe
このコマンドは、DataGraph に関する次の情報を返します。
endpoint: 要求を受け入れる GraphQL エンドポイントを表示します。
deploymentError: DataGraph のデプロイメントが失敗した場合、この項目にエラーの情報が表示されます。それ以外の場合は空です。
deploymentStatus: DataGraph はデプロイ中、実行中、またはエラーがあるかどうかを示します。
logLevels: 設定されたログレベルのリストを表示します。
envStatus: 現在の環境の状況を表示します。
dlbEndpoint: ロードバランサーエンドポイントを表示します。
このコマンドはデフォルトのオプション --help、-f/--fields、-o/--output、--verbose を受け入れます。
> datagraph validate asset <g/a/v>
このコマンドは、API ソースを統合スキーマに追加できるかどうかを検証します。そのために、このコマンドは次の処理を行います。
API ソースを GraphQL スキーマに変換する。
API 仕様に適用されている API 拡張機能を検証する。
統合スキーマに対して競合チェックを実行する。
これらのステップのいずれかで競合またはエラーが発生した場合、コマンドは結果を返します。競合やエラーが見つからない場合は、成功メッセージを返します。
検証する API ソースは、<g/a/v> で指定されます。ここで、g はグループ ID、a はアセット ID、v は API ソースのバージョン ID です。グループ ID は省略可能です。グループ ID を指定しない場合、このコマンドは現在の組織 ID を使用します。
このコマンドはデフォルトのオプション --help、-f/--fields、-o/--output、--verbose を受け入れます。
| コマンド | 説明 |
|---|---|
専用ロードバランサー設定を Anypoint DataGraph に追加する |
|
Anypoint DataGraph の専用ロードバランサー設定を表示する |
|
専用ロードバランサー設定を Anypoint DataGraph から削除する |
> datagraph load-balancer-config add <dlbUrl>
このコマンドでは、<dlbUrl> で指定された専用ロードバランサー設定を Anypoint DataGraph に追加します。
dlbUrl は、DLB ドメインとマッピングルール inputUri を含む有効な URL です。
このコマンドはデフォルトのオプション --help、-f/--fields、-o/--output のみを受け入れます。
コマンドの定義が正しくないと、DataGraph によって次のエラーが返されます。これらのエラーの原因として、オプションのパラメーターが正しくない、ID が見つからない、必須のオプションが欠落している、などが考えられます。
{ "error": { "errorMessage": "Options are required" } }
原因: このエラーは、コマンドを実行するには 1 つ以上のオプションが必須であることを示しています。 * `datagraph sources add`: このコマンドでは `--url` オプションまたは `--discover-url` オプションが必須です。 * `datagraph sources update/promote`: 使用可能な任意のオプションが必須です。対象ソースで更新またはプロモートする要素を定義してください。 === Not Found (見つかりません) 出力:
{ "errorCode": "dg-xapi-proxy", "errorMessage": "Not Found" }
原因: このエラーは、DataGraph でアセットが見つからなかったことを示しています。 * `datagraph sources add`: グループ ID、アセット ID、バージョン ID が有効なアセットに対応していないか、アセットにアクセスできないため、アセットに到達できません。 * `datagraph sources update/promote`: 指定した UUID が現在の環境、またはアセットをプロモートする対象環境に存在しません。 === 不正な要求 出力:
{ "error": { "code": "400", "message": "Bad Request" } }
原因: このエラーは、コマンドの必須のパラメーターの一部で形式に誤りがあることを示しています。 * `datagraph sources update`: 指定されたソース ID が有効な UUID ではありません。 * `datagraph sources promote`: ソース ID または対象環境 ID が有効な UUID 形式ではありません。 === API Already Exists (API がすでに存在しています) 出力:
{ "errorCode": "dg-federation-source-exists", "errorMessage": "API already exists" }
原因: このエラーは、追加しようとしている API がすでに統合スキーマに存在していることを示しています。 * `datagraph sources add`: アセット ID と API ソースのメジャーバージョンがすでに統合スキーマに存在しています。ソースに変更を加えるには、`datagraph sources update` コマンドを使用します。 === No API Instances Found (API インスタンスが見つかりません) 出力:
{ "errorCode": "dg-xapi-no-api-instances", "errorMessage": "No API instances found" }
原因: このエラーは、API インスタンスについて取得する URL が欠落していることを示しています。 * `datagraph sources add/update/promote`: このエラーは、``--discover-url` オプションを使用しているときに表示されます。アセットに、モッキングサービスからのものではない URL を取得できる有効なインスタンスがない場合に発生します。このような場合は、代わりに `--url` オプションを使用します。 === Must Define URL (URL を定義する必要があります) 出力:
{ "error": { "errorMessage": "Must define url or set --discover-url" } }
原因: このエラーは、`--url` または `--discover-url` を使用して URL を設定する必要があることを示しています。 * `datagraph sources add`: URL は `add` コマンドの必須項目であるため、`--url` または `--discover-url` の 2 つのオプションのうちいずれかを設定する必要があります。 === Invalid API Calls (API コールが無効です) 出力:
{ "errorCode": "dg-xapi-invalid-api-calls", "errorMessage": "Invalid Api Calls: 1500" }
原因: このエラーは、無効な数の API コールを要求したことを示しています。 * `datagraph scale`: 同時コール数は 1 ~ 1200 の間である必要があります。 === Unauthorized (承認されていません) 出力:
{ "error": { "code": "401", "message": "Unauthorized" } }
原因: このエラーは、対話型モードで使用しているときに CLI でセッションを失ったことを示しています。CLI を終了して再起動し、もう一度ログインしてください。 === API Not Found in Current Environment (現在の環境で API が見つかりません) 出力:
{ "errorCode": "dg-federation-source-not-in-env", "errorMessage": "API not found in current environment" }
原因: このエラーは、編集、削除、または更新しようとしている API ソースが存在はしているが、作業環境にないことを示しています。 * `datagraph sources update/promote`: 送信された UUID が作業環境にありません。または、`--version` オプションを使用している場合は、メジャーバージョンが現在のバージョンに対応していません。 == DataGraph CLI 検証エラー 統合スキーマに対して API ソースを追加または更新する前に `datagraph validate asset` コマンドを使用すると、DataGraph によって次のエラーが返されます。 * xref:editing-errors[編集エラー] * xref:conflict-errors[競合エラー] === 編集エラー 編集エラーが生成されるのは、特定の API ソースでの編集にセマンティックの問題が含まれる場合です。これらのエラーではコードプロパティ `dg-federation-customization-conflict` を使用しており、次のような構造になります。
{ "code": "dg-federation-customization-conflict", "detail": [ { "code": "element-not-found-in-spec", "editType": "set-primary-key", "reason": "field addId was not found in the specification", "element": "Address" } ], "message": "Customization conflict found adding Customer API" }
* `message` 項目には人間が読み取り可能な検証の応答が含まれており、エラーの概要が提供されます。 * `detail` 項目には現在のアセットで見つかったすべての競合のリストが含まれています。 ** `code` 項目ではエラーの種類を特定します。 ** `editType` 項目では競合があるカスタマイズを特定します。 ** `reason` 項目には人間が読み取り可能な問題の説明が含まれています。 ** `element` 項目には問題が含まれています。 === 競合エラー 競合エラーが発生するのは、統合スキーマに API スキーマを追加しようとしたときです。これらのエラーではコードプロパティ `dg-federation-udg-conflict` を使用しており、次のような構造になります。
{ "code": "dg-federation-udg-conflict", "detail": [ { "element": "Customer", "violations": [ { "code": "incompatible-primary-key-set", "keys": [ "customerId" ], "expectedKeys": [ "name" ], "message": "Primary key set have edges with different names" } ] } ], "message": "Merge conflict found adding CLI - Customer OAS API" }
* `message` 項目には人間が読み取り可能な検証の応答が含まれており、エラーの概要が提供されます。 * `detail` 項目には、API スキーマを統合スキーマにマージしようとしたときに見つかったすべての競合のリストが含まれています。 ** `element` 項目には競合の場所が含まれています。 ** `violations` 項目では修正する必要がある競合がリストされます。 *** `code` 項目ではエラーの種類を特定します。 *** `message` 項目には人間が読み取り可能な問題の説明が含まれており、エラーの種類に応じて、詳細のための追加のプロパティが含まれる場合があります。 == 関連情報 * xref:overview-cli-extensions.adoc[DataGraph CLI および API 拡張機能の使用] * xref:api-extensions.adoc[Anypoint DataGraph API 拡張機能リファレンス]