リファレンス

<ph type="x-smartling-placeholder"></ph> 現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント
詳細

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

バインディング コマンド

バインディングは、Istio メッシュにデプロイされたサービスを Apigee API プロダクトに関連付けます。CLI を使用すると、バインディングを一覧表示して検証できます。

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

リモート サービスにバインドされているすべての 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 リモート サービス構成ファイルのパス。
ヒント: このフラグを使用すると、他のコマンド パラメータを省略できます。これは、CLI で構成ファイルから直接 pull できるためです。<ph type="x-smartling-placeholder"></ph>をご覧ください。 --config オプションを使用する場合..
-e, --env String(文字列) (必須)組織内の環境。
-h, --help コマンド パラメータのヘルプを表示します。
--insecure SSL を使用する場合に安全でないサーバー接続を許可する
--legacy Apigee Edge クラウドを使用している場合は、このフラグを設定します。Edge クラウドの管理とランタイム URL を設定します。
--mfa Apigee 多要素認証トークン(--legacy でのみ使用)
--opdk Apigee Edge for Private Cloud を使用している場合は、このフラグを設定します。
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-p, --password String(文字列) (基本認証でのみ必要)Apigee のパスワード。必要に応じて、.netrc ファイルでパスワードを指定できます。その場合、コマンドラインでパスワードを指定する必要はありません。認証情報に .netrc を使用するもご覧ください。
-r, --runtime String(文字列) (Private Cloud のみ)Private Cloud インスタンスのランタイム URL を指定します。
-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:

バインディングを確認する

このコマンドは非推奨です。バージョン 1.4 では、デベロッパー アプリとリモート サービス ターゲットで使用される API プロダクトを関連付ける必要がなくなりました。

ヘルプコマンド

すべての 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

パラメータ

パラメータ 説明
--analytics-sa String(文字列) このフラグは Apigee ハイブリッドおよび Apigee on Google Cloud のインストールで使用できます。

このフラグを使用して、Google Cloud サービス アカウント キーファイルのパスを指定します。サービス アカウントには Apigee Analytics Agent ロールがあります。SA は、アナリティクス データを Apigee に直接アップロードするため、アダプタによって使用されます。Apigee ハイブリッドを使用している場合は、このオプションを使用すると、一方のクラスタにハイブリッド ランタイムを、もう一方のクラスタにアダプタをインストールできます。

-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 Edge クラウドを使用している場合は、このフラグを設定します。Edge クラウドの管理とランタイム URL を設定します。
--mfa Apigee 多要素認証トークン(--legacy でのみ使用)
-m, --management String(文字列) (Apigee Private Cloud の場合に必須)Apigee 管理ベース URL。デフォルト: https://api.enterprise.apigee.com
-n, --namespace String(文字列) 指定された名前空間で構成を Envoy ConfigMap として発行します。デフォルト: apigee
--opdk String(文字列) Apigee OPDK
-o, --organization String(文字列) (必須)Apigee の組織。組織管理者である必要があります。
-p, --password String(文字列) (基本認証でのみ必要)Apigee のパスワード。必要に応じて、.netrc ファイルでパスワードを指定できます。その場合、コマンドラインでパスワードを指定する必要はありません。認証情報に .netrc を使用するもご覧ください。
--rotate-int int n > 0 の場合、新しい秘密鍵を生成して n 個の公開鍵を保持します(ハイブリッドのみ)。
-r, --runtime String(文字列) (Private Cloud のみ)Private Cloud インスタンスのランタイム URL を指定します。
-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 --mfa $MFA --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml

サンプル コマンド

ネイティブの Envoy または Istio のデプロイのサンプル構成ファイルを作成します。

用途

apigee-remote-service-cli samples create [flags]

説明

このコマンドは、プロビジョニングによって生成された有効な config.yaml ファイルを必要とします。デフォルトでは、サンプル ファイルは ./samples という名前のディレクトリに出力されます。このコマンドにより、このディレクトリが作成されます。

ネイティブの Envoy を使用している場合、このコマンドで、ターゲット サービス ホストとそのクラスタの名前を指定します。また、tls.keytls.crt が含まれているフォルダが --tls によって指定されている場合、Envoy プロキシからリモート サービス クラスタへのカスタム SSL 接続も設定します。

Envoy プロキシがサイドカーとして機能する Istio を使用する場合は、ターゲットが指定されないと、httpbin の例が生成されます。それ以外の場合は、ターゲット サービスのデプロイに関連する構成ファイルを準備する必要があります。

パラメータ

パラメータ 説明
-c, --config String(文字列) (必須)Apigee リモート サービス構成ファイルのパス。
ヒント: このフラグを使用すると、他のコマンド パラメータを省略できます。これは、CLI で構成ファイルから直接 pull できるためです。--config オプションを使用するをご覧ください。
-f, --force 既存のディレクトリを強制的に上書きします。
-h, --help コマンド パラメータのヘルプを表示します。
--host ターゲット サービス ホスト(デフォルトは「httpbin.org」)
-n, --name ターゲット サービス名(デフォルトは「httpbin」)
--out サンプル構成ファイルを作成するディレクトリ。デフォルト: ./samples
-t, --template

テンプレート名。Istio のデプロイ(ハイブリッドのみ)を行う場合は、使用可能な Istio オプションの 1 つを選択します。Envoy のネイティブ デプロイメントにはネイティブ オプションを使用します。使用できるオプションは次のとおりです。

  • istio-1.6(デフォルト)
  • istio-1.7
  • native
--tls TLS キーと crt ファイルを保存するディレクトリ。

apigee-remote-service-cli samples create -c ./config.yaml

利用可能なテンプレート オプションを一覧表示する

--templates パラメータで使用できるオプションを一覧表示します。

用途

apigee-remote-service-cli samples templates

パラメータ

なし

apigee-remote-service-cli samples templates
Supported templates (native is deprecated):
  envoy-1.14
  envoy-1.15
  envoy-1.16
  istio-1.5
  istio-1.6
  istio-1.7
  istio-1.8
  native

トークン コマンド

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]

パラメータ

パラメータ 説明
-c, --config String(文字列) (必須)Apigee リモート サービス構成ファイルのパス。
ヒント: このフラグを使用すると、他のコマンド パラメータを省略できます。これは、CLI で構成ファイルから直接 pull できるためです。--config オプションを使用するをご覧ください。
-e, --env String(文字列) (必須)組織内の環境。
-h, --help コマンド パラメータのヘルプを表示します。
--insecure SSL を使用する場合に安全でないサーバー接続を許可します。
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-r, --runtime String(文字列) (Private Cloud のみ)Private Cloud インスタンスのランタイム URL を指定します。
-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]

パラメータ

パラメータ 説明
-c, --config String(文字列) (必須)Apigee リモート サービス構成ファイルのパス。
ヒント: このフラグを使用すると、他のコマンド パラメータを省略できます。これは、CLI で構成ファイルから直接 pull できるためです。--config オプションを使用するをご覧ください。
-e, --env String(文字列) (必須)組織内の環境。
-h, --help コマンド パラメータのヘルプを表示します。
--insecure SSL を使用する場合に安全でないサーバー接続を許可します。
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-r, --runtime String(文字列) (Private Cloud のみ)Private Cloud インスタンスのランタイム URL を指定します。
-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 リモート サービス構成ファイルのパス。
ヒント: このフラグを使用すると、他のコマンド パラメータを省略できます。これは、CLI で構成ファイルから直接 pull できるためです。--config オプションを使用するをご覧ください。
-e, --env String(文字列) (必須)組織内の環境。
-h, --help コマンド パラメータのヘルプを表示します。
--insecure SSL を使用する場合に安全でないサーバー接続を許可する
--truncate int jwks に保持する証明書の数(デフォルトは 2)
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-r, --runtime String(文字列) (Private Cloud のみ)Private Cloud インスタンスのランタイム URL を指定します。
-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: 1m
  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
  jwt_provider_key: https://org-test.apigee.net/remote-service/token