リファレンス

現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメントに移動
情報

apigee-remote-service-cli コマンドライン インターフェース(CLI)は、Apigee Adapter for Envoy のプロビジョニングと管理に役立ちます。

バインディング コマンド

バインディングは、Istio メッシュにデプロイされたサービスを Apigee API プロダクトに関連付けます。CLI では、バインディングの作成、削除、一覧表示を行うことができます。

注: プロダクト作成 UI では、プロダクトに 1 つ以上のサービスを指定できます。これは、CLI を使用してバインディングを作成する場合と同じです。

バインディングの追加

リモート ターゲット バインディングを API プロダクトに追加します。

用途

Edge Public Cloud の場合:

apigee-remote-service-cli bindings add [service_name] [product_name]  -o [organization] -e [environment] -u [username] -p [password] -c [config]

Edge Private Cloud の場合:

apigee-remote-service-cli bindings add [service_name] [product_name]  -o [organization] -e [environment] -u [username] -p [password] -r [runtime] -c [config]

Apigee ハイブリッドの場合:

apigee-remote-service-cli bindings add [service_name] [product_name]  -o [organization] -e [environment] -t [token]

パラメータ

パラメータ 説明
-c, --config String(文字列) (必須)Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。
-e, --env String(文字列) (必須)組織内の環境。
-h, --help コマンド パラメータのヘルプを表示します。
--insecure SSL を使用する場合に安全でないサーバー接続を許可する
--legacy Apigee Edge クラウドを使用している場合は、このフラグを設定します。Edge クラウドの管理とランタイム URL を設定します。
--opdk Apigee Edge for Private Cloud を使用している場合は、このフラグを設定します。
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-p, --password String(文字列) (基本認証でのみ必要)Apigee のパスワード。必要に応じて、.netrc ファイルでパスワードを指定できます。その場合、コマンドラインでパスワードを指定する必要はありません。認証情報に .netrc を使用するもご覧ください。
-r, --runtime String(文字列) Apigee ランタイム ベース URL(ハイブリッドまたは opdk に必要)。
-t, --token String(文字列) (OAuth トークン認証の場合にのみ必須)Apigee アカウント情報から生成される OAuth または SAML トークン。トークンを生成する方法については、get_token の使用SAML を使用して Management API にアクセスするをご覧ください。
-u, --username String(文字列) (Basic 認証の場合のみ必須)Apigee ユーザー名(通常はメールアドレス)。必要に応じて、.netrc ファイルでユーザー名を指定できます。その場合、コマンドラインでユーザー名を指定する必要はありません。認証情報に .netrc を使用するもご覧ください。
-v, --verbose (省略可)冗長な出力を生成します。

./apigee-remote-service-cli bindings add httpbin.org envoy-test -o myorg -e test -u user@example.com -c config.yaml -p xxxxxx
product envoy-test is now bound to: httpbin.org

バインディングの一覧表示

リモート サービスにバインドされているすべての API プロダクトを一覧表示します。

用途

Edge Public Cloud の場合:

apigee-remote-service-cli bindings list -o [organization] -e [environment] -u [username] -p [password]

Edge Private Cloud の場合:

apigee-remote-service-cli bindings list -o [organization] -e [environment] -u [username] -p [password] -r [runtime] 

パラメータ

パラメータ 説明
-c, --config String(文字列) (必須)Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。
-e, --env String(文字列) (必須)組織内の環境。
-h, --help コマンド パラメータのヘルプを表示します。
--insecure SSL を使用する場合に安全でないサーバー接続を許可する
--legacy Apigee Edge クラウドを使用している場合は、このフラグを設定します。Edge クラウドの管理とランタイム URL を設定します。
--opdk Apigee Edge for Private Cloud を使用している場合は、このフラグを設定します。
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-p, --password String(文字列) (基本認証でのみ必要)Apigee のパスワード。必要に応じて、.netrc ファイルでパスワードを指定できます。その場合、コマンドラインでパスワードを指定する必要はありません。認証情報に .netrc を使用するもご覧ください。
-r, --runtime String(文字列) Apigee ランタイム ベース URL(ハイブリッドまたは opdk に必要)。
-t, --token String(文字列) (OAuth トークン認証の場合にのみ必須)Apigee アカウント情報から生成される OAuth または SAML トークン。トークンを生成する方法については、get_token の使用SAML を使用して Management API にアクセスするをご覧ください。
-u, --username String(文字列) (Basic 認証の場合のみ必須)Apigee ユーザー名(通常はメールアドレス)。必要に応じて、.netrc ファイルでユーザー名を指定できます。その場合、コマンドラインでユーザー名を指定する必要はありません。認証情報に .netrc を使用するもご覧ください。
-v, --verbose (省略可)冗長な出力を生成します。

apigee-remote-service-cli bindings list -o myorg -e test -u user@example.com -c config.yaml -p abc123
PI Products
============
Bound
-----
envoy-test:
  Quota: 5 requests every 1 minute
  Target bindings:
    httpbin.org
  Paths:
httpbin:
  Quota: 5 requests every 1 minute
  Target bindings:
    httpbin.org
  Paths:
    /httpbin
    /

Unbound
-------
product-1:
  Quota: 100 requests every 1 hour
product-2:
  Quota: 1000 requests every 1 month
product-3:
product-4:

バインディングを削除する

API プロダクトから Envoy のリモート サービス のバインディングを削除します。

注: Edge UI でプロダクトからサービス名を削除して、Envoy バインディングのリモート サービスを削除することもできます。

用途

Edge Public Cloud の場合:

apigee-remote-service-cli bindings remove [service_name] [product_name]  -o [organization] -e [environment] -u [username] -p [password] -c [config]

Edge Private Cloud の場合:

apigee-remote-service-cli bindings remove [service_name] [product_name]  -o [organization] -e [environment] -u [username] -p [password] -r [runtime] -c [config]

Apigee ハイブリッドの場合:

apigee-remote-service-cli bindings remove [service_name] [product_name]  -o [organization] -e [environment] -t [token]

パラメータ

パラメータ 説明
-c, --config String(文字列) (必須)Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。
-e, --env String(文字列) (必須)組織内の環境。
-h, --help コマンド パラメータのヘルプを表示します。
--insecure SSL を使用する場合に安全でないサーバー接続を許可する
--legacy Apigee Edge クラウドを使用している場合は、このフラグを設定します。Edge クラウドの管理とランタイム URL を設定します。
--opdk Apigee Edge for Private Cloud を使用している場合は、このフラグを設定します。
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-p, --password String(文字列) (基本認証でのみ必要)Apigee のパスワード。必要に応じて、.netrc ファイルでパスワードを指定できます。その場合、コマンドラインでパスワードを指定する必要はありません。認証情報に .netrc を使用するもご覧ください。
-r, --runtime String(文字列) Apigee ランタイム ベース URL(ハイブリッドまたは opdk に必要)。
-t, --token String(文字列) (OAuth トークン認証の場合にのみ必須)Apigee アカウント情報から生成される OAuth または SAML トークン。トークンを生成する方法については、get_token の使用SAML を使用して Management API にアクセスするをご覧ください。
-u, --username String(文字列) (Basic 認証の場合のみ必須)Apigee ユーザー名(通常はメールアドレス)。必要に応じて、.netrc ファイルでユーザー名を指定できます。その場合、コマンドラインでユーザー名を指定する必要はありません。認証情報に .netrc を使用するもご覧ください。
-v, --verbose (省略可)冗長な出力を生成します。

./apigee-remote-service-cli bindings remove httpbin.org envoy-test -o myorg -e test -u user@example.com -c config.yaml -p xxxxxx
product envoy-test is no longer bound to: httpbin.org

ヘルプコマンド

すべての apigee-remote-service-cli コマンドにオンライン ヘルプが用意されています。次のコマンドを入力してください。

apigee-remote-service-cli help

特定のコマンドのヘルプを表示するには、次のコマンドを入力します。

apigee-remote-service-cli [command] help

次に例を示します。

apigee-remote-service-cli provision help

プロビジョニング コマンド

apigee-remote-service-cli provision コマンドでは、Apigee Edge 組織にプロキシをインストールし、証明書を設定して、Apigee Adapter for Envoy を構成するために必要な認証情報を生成します。

用途

Edge Public Cloud の場合:

apigee-remote-service-cli provision -o $ORG -e $ENV -u $USERNAME -p $PASSWORD

Edge Private Cloud の場合:

apigee-remote-service-cli provision --opdk -o $ORG -e $ENV -u $USERNAME --management $MGMT_SERVER_URL --runtime $RUNTIME_URL -p $PASSWORD

パラメータ

パラメータ 説明
-c, --config String(文字列) Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。
-e, --environment String(文字列) (必須)組織内の環境。
-f, --force-proxy-install (省略可)組織に remote-service プロキシがすでにインストールされている場合は、強制的に再インストールします。
-h, --help コマンド パラメータのヘルプを表示します。
-k, --key String(文字列) apigee-remote-service-cli provision コマンドから返されるキーを指定します。
--legacy Apigee SaaS(管理とランタイム URL を設定)
-m, --management String(文字列) (Apigee Private Cloud の場合に必須)Apigee 管理ベース URL。デフォルト: https://api.enterprise.apigee.com
-n, --namespace String(文字列) 指定された名前空間で構成を Envoy ConfigMap として発行します。
--opdk String(文字列) Apigee OPDK
-o, --organization String(文字列) (必須)Apigee の組織。組織管理者である必要があります。
-p, --password String(文字列) (基本認証でのみ必要)Apigee のパスワード。必要に応じて、.netrc ファイルでパスワードを指定できます。その場合、コマンドラインでパスワードを指定する必要はありません。認証情報に .netrc を使用するもご覧ください。
--rotate-int int n > 0 の場合、新しい秘密鍵を生成して n 個の公開鍵を保持します(ハイブリッドのみ)。
-r, --runtime String(文字列) Apigee ランタイム ベース URL(ハイブリッドまたは opdk に必要)。
-s, --secret String(文字列) apigee-remote-service-cli provision コマンドから返されるシークレットを指定します。
--strength int (省略可)アダプタのプロビジョニングに使用される SSL 証明書の暗号化の強度を指定します。デフォルトは 2048
-t, --token String(文字列) (ハイブリッドのみ)Apigee OAuth または SAML トークン。
-u, --username String(文字列) (Basic 認証の場合のみ必須)Apigee ユーザー名(通常はメールアドレス)。必要に応じて、.netrc ファイルでユーザー名を指定できます。認証情報に .netrc を使用するもご覧ください。
-v, --verbose (省略可)冗長な出力を生成します。
--virtual-hosts String(文字列) デフォルトの仮想ホスト(「default,secure」)をオーバーライドします。このオプションは、 Edge 組織環境に、これらのデフォルト以外の仮想ホストが指定されている。 仮想ホストの詳細については、Edge のドキュメントをご覧ください。
--years int (省略可)プロビジョニングで使用されている SSL 証明書が期限切れになるまでの年数。デフォルト: 1

必ず provision コマンドの出力をキャプチャしてください。このコマンドは、他の Apigee Adapter for Envoy オペレーションの入力として使用されます。

Edge Public Cloud の例:

apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml

Apigee ハイブリッドの例

apigee-remote-service-cli provision --organization $ORG --environment $ENV --runtime $RUNTIME --namespace $NAMESPACE --token $TOKEN > config.yaml

トークン コマンド

API キーではなく、JWT トークンを使用して、認証済みの API プロキシ呼び出しを行えます。トークン コマンドを使用すると、この目的のために JWT トークンの作成、検査、ローテーションを行えます。

JWT トークンを作成する

JWT トークンを使用して、リモート サービス ターゲットに対して認証済みの API プロキシ呼び出しを行うことができます。JWT ベースの認証の使用もご覧ください。

用途

Edge Public Cloud の場合:
apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -o [org] -e [env]
Edge Private Cloud の場合:
apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -r [runtime] -o [org] -e [env]
Apigee ハイブリッドの場合:
apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -r [runtime] -o [org] -e [env]

パラメータ

パラメータ 説明
-c, --config String(文字列) (必須)Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。
-e, --env String(文字列) (必須)組織内の環境。
-h, --help コマンド パラメータのヘルプを表示します。
--insecure SSL を使用する場合に安全でないサーバー接続を許可します。
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-r, --runtime String(文字列) Apigee ランタイム ベース URL(ハイブリッドまたは opdk でのみ必要)。
-v, --verbose (省略可)冗長な出力を生成します。

apigee-remote-service-cli token create -o myorg -e test -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 -s icTARgaKHqvUH1dq -c config.yaml

出力

成功すると、次のような JST トークンの出力が表示されます。
eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhY2Nlc3NfdG9rZW4iOiJ0a2tlVzVKQTY2a0pZYTB4bFV1cVBsUW1BMU43IiwiYXVkIjoiaXN0aW8iLCJuYmYiOjE1MzAxMzg1OTEsImFwaV9wcm9kdWN0X2xpc3QiOlsiaXN0aW8tcHJvZHVjdCJdLCJhcHBsaWNhdGlvbl9uYW1lIjoiaXN0aW8tYXBwIiwiZGV2ZWxvcGVyX2VtYWlsIjoicFluZ2Zsb3lkQGdvb2dsZS5jb20iLCJpc3MiOiJodHRwczovL2FwaWdlZXNlYXJjaC10ZXN0LmFwaWdlZS5uZXQvaXN0aW8tYXV0aC90b2tlbiIsImV4cCI6MTUzMDEzOTQ5MSwiaWF0IjoxNTMwMTM4NTkxLCJqdGkiOiIxODgzMzViZi0wMmE4LTRjZGUsOGFkOS0yMWJmNDZjNmRjZDkiLCJjbGllbnRfaWQiOiJZVW1sWkFjQktOc1RBZWxKcVBZRmwzc2g1OE9iQVRYOSJ9.AL7pKSTmond-NSPRNNHVbIzTdAnZjOXcjQ-BbOJ_8lsQvF7PuiOUrGIhY5XTcJusisKgbCdtIxBl8Wq1EiQ_fKnUc3JYYOqzpTB5bGoFy0Yqbfu96dneuWyzgZnoQBkqwZkbQTIg7WNTGx1TJX-UTePvBPxAefiAbaEUcigX9tTsXPoRJZOTrm7IOeKpxpB_gQYkxQtV1_NbERxjTPyMbHdMWal9_xRVzSt7mpTGudMN9OR-VtQ1uXA67GOqhZWcOzq57qImOiCMbaoKnKUADevyWjX_VscN5ZZUtzQUQhTrmv8aR69-uVhMIPKp9juMyYKaYn2IsYZEeCWfhfV45Q

JWT トークンを検査する

このコマンドで JWT トークンを検査できます。トークンを検査するもご覧ください。

用途

Edge Public Cloud の場合:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file]
Edge Private Cloud の場合:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file] --runtime [host_alias]
Apigee ハイブリッドの場合:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file] --runtime [host_alias]

パラメータ

パラメータ 説明
-c, --config String(文字列) (必須)Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。
-e, --env String(文字列) (必須)組織内の環境。
-h, --help コマンド パラメータのヘルプを表示します。
--insecure SSL を使用する場合に安全でないサーバー接続を許可します。
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-r, --runtime String(文字列) Apigee ランタイム ベース URL(ハイブリッドまたは opdk でのみ必要)。
-v, --verbose (省略可)冗長な出力を生成します。

apigee-remote-service-cli token inspect -c config.yaml <<< $TOKEN

出力

成功すると、次のような出力が表示されます。
{
	"aud": [
		"remote-service-client"
	],
	"exp": 1591741549,
	"iat": 1591740649,
	"iss": "https://apigee-docs-test.apigee.net/remote-service/token",
	"jti": "99325d2e-6440-4278-9f7f-b252a1a79e53",
	"nbf": 1591740649,
	"access_token": "VfzpXzBGAQ07po0bPMKY4JgQjus",
	"api_product_list": [
		"httpbin"
	],
	"application_name": "httpbin",
	"client_id": "GYDGHy5TRpV8AejXCOlreP7dPVepA8H",
	"developer_email": "user@example.com",
	"scope": ""
}
verifying...
token ok.

JWT トークンをローテーションする

JWT を最初に生成した後、Apigee Edge が暗号化された Key-Value マップ(KVM)に保存する公開鍵と秘密鍵のペアを変更する必要が生じることがあります。新しい鍵ペアを生成するこのプロセスは、鍵のローテーションと呼ばれます。鍵をローテーションすると、新しい秘密鍵と公開鍵のペアが生成され、Apigee Edge 組織 / 環境の「istio」KVM に保存されます。また、元の公開鍵は元の鍵 ID 値と一緒に保持されます。

用途

Edge Public Cloud を使用している場合:
apigee-remote-service-cli token rotate-cert -c [config_file] -o [organization] -e [environment] -k [provision_key] -s [provision_secret] --kid [new_key_id]
Edge Private Cloud を使用している場合:
apigee-remote-service-cli token rotate-cert -o [organization] -e [environment] -u [username] -p [password] -k [provision_key] -s [provision_secret] --kid [new_key_id]

パラメータ

パラメータ 説明
-c, --config String(文字列) (必須)Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。
-e, --env String(文字列) (必須)組織内の環境。
-h, --help コマンド パラメータのヘルプを表示します。
--insecure SSL を使用する場合に安全でないサーバー接続を許可する
--truncate int jwks に保持する証明書の数(デフォルトは 2)
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-r, --runtime String(文字列) Apigee ランタイム ベース URL(ハイブリッドまたは opdk に必要)。
-v, --verbose (省略可)冗長な出力を生成します。

apigee-remote-service-cli token rotate-cert -c config.yaml -o myorg -e test -k 2e238ffa15dc5ab6a1e97868e7581f6c60ddb8575478582c256d8b7e5b2677a8 -s 51058077223fa7b683c3bea845c5cca138340d1d5583922b6d465f9f918a4b08

出力

certificate successfully rotated

認証情報に .netrc を使用する

Edge Public Cloud を使用していて api.enterprise.apigee.com マシンへのエントリがある場合、apigee-remote-service-cli は、ホーム ディレクトリの .netrc ファイルから usernamepassword を自動的に取得します(基本認証に必要な場合)。Apigee Private Cloud を使用している場合、マシン値は management URL と同じになります(例: http://192.162.55.100)。 Edge Public Cloud の場合の例:
machine api.enterprise.apigee.com
login jdoe@google.com
password abc123
Edge Private Cloud の場合の例:
machine http://192.162.55.100
login jdoe@google.com
password abc123

バージョン コマンド

CLI バージョンを出力します。

apigee-remote-service-cli version

--config コマンド オプションを使用する

--config オプションでは、provision コマンドで生成された構成ファイルの場所を指定します。このオプションには、CLI によって構成ファイルから pull される他のほとんどのコマンド パラメータをスキップできるという利点があります。たとえば、次のようなオプションがあります。
  • organization
  • environment
  • runtime
  • management
  • insecure
  • namespace
  • legacy
  • opdk

たとえば、次のような provision コマンドを実行できます。

apigee-remote-service-cli provision --config='old-config.yaml' > new-config.yaml

構成ファイル

このセクションでは、使用可能なすべてのオプションを含む構成ファイルの例を示します。

global:
  temp_dir: /tmp/apigee-istio
  keep_alive_max_connection_age: 10m
  api_address: :5000
  metrics_address: :5001
  tls:
    cert_file: tls.crt
    key_file: tls.key
tenant:
  internal_api: https://istioservices.apigee.net/edgemicro
  remote_service_api: https://org-test.apigee.net/remote-service
  org_name: org
  env_name: env
  key: mykey
  secret: mysecret
  client_timeout: 30s
  allow_unverified_ssl_cert: false
products:
  refresh_rate: 2m
analytics:
  legacy_endpoint: false
  file_limit: 1024
  send_channel_size: 10
  collection_interval: 10s
  fluentd_endpoint: apigee-udca-myorg-test.apigee.svc.cluster.local:20001
  tls:
    ca_file: /opt/apigee/tls/ca.crt
    cert_file: /opt/apigee/tls/tls.crt
    key_file: /opt/apigee/tls/tls.key
    allow_unverified_ssl_cert: false
auth:
  api_key_claim: claim
  api_key_cache_duration: 30m
  api_key_header: x-api-key
  api_target_header: :authority
  reject_unauthorized: true
  jwks_poll_interval: 0s