このページは Apigee と Apigee ハイブリッドに適用されます。
Apigee Edge のドキュメントを表示する。
apigee-remote-service-cli コマンドライン インターフェース(CLI)は、Apigee Adapter for Envoy のプロビジョニングと管理に役立ちます。
バインディング コマンド
バインディングは、Istio メッシュにデプロイされたサービスを Apigee API プロダクトに関連付けます。CLI では、バインディングの作成、削除、一覧表示を行うことができます。
注: プロダクト作成 UI では、プロダクトに 1 つ以上のサービスを指定できます。これは、CLI を使用してバインディングを作成する場合と同じです。バインディングの追加
リモート ターゲット バインディングを API プロダクトに追加します。
用途
Apigee ハイブリッドの場合:
apigee-remote-service-cli bindings add [service_name] [product_name] -o [organization] -e [environment] -t [token]
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
-c, --config
|
文字列 | (必須)Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。 |
-e, --env
|
String(文字列) | (必須)組織内の環境。 |
-h, --help
|
コマンド パラメータのヘルプを表示します。 | |
--insecure
|
SSL を使用する場合に安全でないサーバー接続を許可します。 | |
--legacy
|
Apigee Cloud を使用している場合は、このフラグを設定します。Edge Cloud の管理とランタイム URL を設定します。 | |
--opdk
|
Apigee for Private Cloud を使用している場合は、このフラグを設定します。 | |
-o, --org
|
String(文字列) | (必須)Apigee 組織。組織管理者である必要があります。 |
-p, --password
|
文字列 | (基本認証でのみ必要)Apigee のパスワード。必要に応じて、.netrc ファイルでパスワードを指定できます。その場合、コマンドラインでパスワードを指定する必要はありません。認証情報に .netrc を使用するもご覧ください。 |
-r, --runtime
|
文字列 | Apigee ランタイム ベース URL(ハイブリッドまたは opdk に必要)。 |
-t, --token
|
文字列 | (OAuth トークン認証の場合にのみ必須)Apigee アカウント情報から生成される OAuth または SAML トークン。トークンを生成する方法については、OAuth 2.0 アクセス トークンの取得と SAML の概要をご覧ください。 |
-u, --username
|
文字列 | (基本認証の場合のみ必須)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 プロダクトを一覧表示します。
使用法
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
-c, --config
|
文字列 | (必須)Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。 |
-e, --env
|
String(文字列) | (必須)組織内の環境。 |
-h, --help
|
コマンド パラメータのヘルプを表示します。 | |
--insecure
|
SSL を使用する場合に安全でないサーバー接続を許可します。 | |
--legacy
|
Apigee Cloud を使用している場合は、このフラグを設定します。Edge Cloud の管理とランタイム URL を設定します。 | |
--opdk
|
Apigee for Private Cloud を使用している場合は、このフラグを設定します。 | |
-o, --org
|
String(文字列) | (必須)Apigee 組織。組織管理者である必要があります。 |
-p, --password
|
文字列 | (基本認証でのみ必要)Apigee のパスワード。必要に応じて、.netrc ファイルでパスワードを指定できます。その場合、コマンドラインでパスワードを指定する必要はありません。認証情報に .netrc を使用するもご覧ください。 |
-r, --runtime
|
文字列 | Apigee ランタイム ベース URL(ハイブリッドまたは opdk に必要)。 |
-t, --token
|
文字列 | (OAuth トークン認証の場合にのみ必須)Apigee アカウント情報から生成される OAuth または SAML トークン。トークンを生成する方法については、OAuth 2.0 アクセス トークンの取得と SAML の概要をご覧ください。 |
-u, --username
|
文字列 | (基本認証の場合のみ必須)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 プロダクトから Remote Service for Envoy のバインディングを削除します。
注: UI でプロダクトからサービス名を削除して、Remote Service for Envoy バインディングを削除することもできます。用途
Apigee ハイブリッドの場合:
apigee-remote-service-cli bindings remove [service_name] [product_name] -o [organization] -e [environment] -t [token]
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
-c, --config
|
文字列 | (必須)Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。 |
-e, --env
|
String(文字列) | (必須)組織内の環境。 |
-h, --help
|
コマンド パラメータのヘルプを表示します。 | |
--insecure
|
SSL を使用する場合に安全でないサーバー接続を許可します。 | |
--legacy
|
Apigee Cloud を使用している場合は、このフラグを設定します。Edge Cloud の管理とランタイム URL を設定します。 | |
--opdk
|
Apigee for Private Cloud を使用している場合は、このフラグを設定します。 | |
-o, --org
|
String(文字列) | (必須)Apigee 組織。組織管理者である必要があります。 |
-p, --password
|
文字列 | (基本認証でのみ必要)Apigee のパスワード。必要に応じて、.netrc ファイルでパスワードを指定できます。その場合、コマンドラインでパスワードを指定する必要はありません。認証情報に .netrc を使用するもご覧ください。 |
-r, --runtime
|
文字列 | Apigee ランタイム ベース URL(ハイブリッドまたは opdk に必要)。 |
-t, --token
|
文字列 | (OAuth トークン認証の場合にのみ必須)Apigee アカウント情報から生成される OAuth または SAML トークン。トークンを生成する方法については、OAuth 2.0 アクセス トークンの取得と SAML の概要をご覧ください。 |
-u, --username
|
文字列 | (基本認証の場合のみ必須)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 組織にプロキシがインストールされ、証明書が設定されて、Apigee Adapter for Envoy の構成に必要な認証情報が生成されます。
用途
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
-c, --config
|
文字列 | Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。 |
-e, --environment
|
String(文字列) | (必須)組織内の環境。 |
-f, --force-proxy-install
|
(省略可)組織に remote-service プロキシがすでにインストールされている場合は、強制的に再インストールします。 |
|
-h, --help
|
コマンド パラメータのヘルプを表示します。 | |
-k, --key
|
String(文字列) | apigee-remote-service-cli provision コマンドから返されるキーを指定します。
|
--legacy
|
Apigee Edge(管理とランタイム URL を設定) | |
-m, --management
|
String(文字列) | (Apigee Private Cloud の場合に必須)Apigee 管理ベース URL。デフォルト: https://api.enterprise.apigee.com |
-n, --namespace
|
文字列 | 指定された名前空間で構成を Envoy ConfigMap として発行します。 |
--opdk
|
文字列 | Apigee OPDK |
-o, --organization
|
文字列 | (必須)Apigee の組織。組織管理者である必要があります。 |
-p, --password
|
文字列 | (基本認証でのみ必要)Apigee のパスワード。必要に応じて、.netrc ファイルでパスワードを指定できます。その場合、コマンドラインでパスワードを指定する必要はありません。認証情報に .netrc を使用するもご覧ください。 |
--rotate-int
|
整数 | n > 0 の場合、新しい秘密鍵を生成して n 個の公開鍵を保持します(ハイブリッドのみ)。 |
-r, --runtime
|
文字列 | Apigee ランタイム ベース URL(ハイブリッドまたは opdk に必要)。 |
-s, --secret
|
文字列 | apigee-remote-service-cli provision コマンドから返されるシークレットを指定します。 |
--strength
|
整数 | (省略可)アダプタのプロビジョニングに使用される SSL 証明書の暗号化の強度を指定します。デフォルトは 2048 |
-t, --token
|
文字列 | (ハイブリッドのみ)Apigee OAuth または SAML トークン。 |
-u, --username
|
文字列 | (基本認証の場合のみ必須)Apigee ユーザー名(通常はメールアドレス)。必要に応じて、.netrc ファイルでユーザー名を指定できます。認証情報に .netrc を使用するもご覧ください。 |
-v, --verbose
|
(省略可)冗長な出力を生成します。 | |
--virtual-hosts
|
String(文字列) | デフォルトの仮想ホストをオーバーライドします。 |
--years
|
整数 | (省略可)プロビジョニングで使用されている SSL 証明書が期限切れになるまでの年数。デフォルト: 1 |
例
provision コマンドの出力を必ずキャプチャしてください。このコマンドは、他の Apigee Adapter for Envoy オペレーションの入力として使用されます。
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 ベースの認証の使用もご覧ください。使用状況
Apigee ハイブリッドの場合:apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -r [runtime] -o [org] -e [env]
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
-c, --config
|
文字列 | (必須)Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。 |
-e, --env
|
String(文字列) | (必須)組織内の環境。 |
-h, --help
|
コマンド パラメータのヘルプを表示します。 | |
--insecure
|
SSL を使用する場合に安全でないサーバー接続を許可します。 | |
-o, --org
|
String(文字列) | (必須)Apigee 組織。組織管理者である必要があります。 |
-r, --runtime
|
文字列 | 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 トークンを検査できます。トークンを検査するもご覧ください。使用状況
Apigee ハイブリッドの場合:apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file] --runtime [host_alias]
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
-c, --config
|
文字列 | (必須)Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。 |
-e, --env
|
String(文字列) | (必須)組織内の環境。 |
-h, --help
|
コマンド パラメータのヘルプを表示します。 | |
--insecure
|
SSL を使用する場合に安全でないサーバー接続を許可します。 | |
-o, --org
|
String(文字列) | (必須)Apigee 組織。組織管理者である必要があります。 |
-r, --runtime
|
文字列 | 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 によって暗号化された Key-Value マップ(KVM)に保存された公開鍵と秘密鍵のペアの変更が必要になることがあります。新しい鍵ペアを生成するこのプロセスは、鍵のローテーションと呼ばれます。鍵をローテーションすると、新しい秘密鍵と公開鍵のペアが生成され、Apigee Edge 組織 / 環境の istio KVM に保存されます。また、元の公開鍵は元の鍵 ID 値と一緒に保持されます。用途
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
-c, --config
|
文字列 | (必須)Apigee リモート サービス構成ファイルのパス。ヒント: このオプションを指定すると、他のほとんどのコマンド パラメータを省略できます。--config オプションの使用をご覧ください。 |
-e, --env
|
String(文字列) | (必須)組織内の環境。 |
-h, --help
|
コマンド パラメータのヘルプを表示します。 | |
--insecure
|
SSL を使用する場合に安全でないサーバー接続を許可します。 | |
--truncate
|
整数 | jwks に保持する証明書の数(デフォルトは 2) |
-o, --org
|
String(文字列) | (必須)Apigee 組織。組織管理者である必要があります。 |
-r, --runtime
|
文字列 | 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 を使用する
Apigee を使用していてapi.enterprise.apigee.com マシンへのエントリがある場合、apigee-remote-service-cli は、ホーム ディレクトリの .netrc ファイルから username と password を自動的に取得します(基本認証に必要な場合)。Apigee Private Cloud を使用している場合、マシン値は management URL と同じになります(例: http://192.162.55.100)。バージョン コマンド
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