リファレンス

このページの内容は ApigeeApigee ハイブリッドに該当します。

Apigee Edge のドキュメントを表示する。

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

バインディング コマンド

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

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

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

使用量

Apigee ハイブリッドの場合:

apigee-remote-service-cli bindings list -o [organization] -e [environment] -t [token] -r [runtime]

パラメータ

パラメータ 説明
-c, --config String(文字列) (必須)Apigee リモート サービス構成ファイルのパス。
ヒント: このフラグを使用すると、他のコマンド パラメータを省略できます。これは、CLI で構成ファイルから直接 pull できるためです。--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 String(文字列) (基本認証でのみ必須 - ハイブリッドでは使用できない)Apigee のパスワード。必要に応じて、.netrc ファイルでパスワードを指定できます。その場合、コマンドラインでパスワードを指定する必要はありません。認証情報に .netrc を使用するもご覧ください。
-r, --runtime String(文字列) ハイブリッド構成で定義された仮想ホストの hostAlias が含まれる URL。先頭は https:// でなければなりません。例: https://apitest.apigee-hybrid-docs.net
-t, --token String(文字列) (必須)アクセス トークン。
-u, --username String(文字列) (基本認証の場合のみ必須 - ハイブリッドでは使用できない)Apigee ユーザー名(通常はメールアドレス)。必要に応じて、.netrc ファイルでユーザー名を指定できます。その場合、コマンドラインでユーザー名を指定する必要はありません。認証情報に .netrc を使用するもご覧ください。
-v, --verbose (省略可)冗長な出力を生成します。

apigee-remote-service-cli bindings list -o myorg -e test -c config.yaml \
-r $RUNTIME -t $TOKEN
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 プロダクトとそれに関連付けられたデベロッパー アプリにもリモート サービス プロダクトが関連付けられていることを確認します。API プロダクト名を指定しない場合は、バインドされているすべてのプロダクトがコマンドでチェックされます。

使用量

Apigee ハイブリッドの場合:

apigee-remote-service-cli bindings verify [product_name]  -o [organization] -e [environment] -r [runtime] -t [token]

product_name は省略可能です。プロダクト名を指定しない場合、バインドされたすべてのプロダクトが確認されます。

パラメータ

パラメータ 説明
-c, --config String(文字列) (必須)Apigee リモート サービス構成ファイルのパス。
ヒント: このフラグを使用すると、他のコマンド パラメータを省略できます。これは、CLI で構成ファイルから直接 pull できるためです。--config オプションの使用をご覧ください。
-e, --env String(文字列) (必須)組織内の環境。
-h, --help コマンド パラメータのヘルプを表示します。
--insecure SSL を使用する場合に安全でないサーバー接続を許可します。
--legacy Apigee Cloud を使用している場合は、このフラグを設定します。Edge Cloud の管理とランタイム URL を設定します。
--opdk Apigee for Private Cloud を使用している場合は、このフラグを設定します。
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-r, --runtime String(文字列) ハイブリッド構成で定義された仮想ホストの hostAlias が含まれる URL。先頭は https:// でなければなりません。例: https://apitest.apigee-hybrid-docs.net
-t, --token String(文字列) (必須)アクセス トークン。
-v, --verbose (省略可)冗長な出力を生成します。

/apigee-remote-service-cli bindings verify my_product -o $ORG -e $ENV \
-c config.yaml -r $RUNTIME -t $TOKEN

Verifying apps associated with product my-product:
  app my-app associated with product my-product is verified

ヘルプコマンド

すべての 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 の構成に必要な認証情報が生成されます。

使用量

Apigee ハイブリッドの場合:

apigee-remote-service-cli provision  -o $ORG -e $ENV -r $RUNTIME -t $TOKEN

パラメータ

パラメータ 説明
--analytics-sa String(文字列) このフラグを使用して、Google Cloud サービス アカウント キーファイルのパスを指定します。サービス アカウントには Apigee Analytics Agent ロールがあります。SA は、アナリティクス データを Apigee に直接アップロードするため、アダプタによって使用されます。Apigee ハイブリッドを使用している場合は、このオプションを使用すると、一方のクラスタにハイブリッド ランタイムをもう一方のクラスタにアダプタをインストールできます。このフラグは、Google Cloud 上の Apigee Hybrid と 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(管理とランタイム URL を設定)
-m, --management String(文字列) (Apigee Private Cloud の場合に必須)Apigee 管理ベース URL。デフォルト: https://api.enterprise.apigee.com
-n, --namespace String(文字列) 指定された名前空間で構成を Envoy ConfigMap として発行します。デフォルト: apigee
--opdk String(文字列) Apigee for Private Cloud を使用している場合は、このフラグを設定します。
-o, --organization String(文字列) (必須)Apigee の組織。組織管理者である必要があります。
-p, --password String(文字列) (基本認証でのみ必須 - ハイブリッドでは使用できない)Apigee のパスワード。必要に応じて、.netrc ファイルでパスワードを指定できます。その場合、コマンドラインでパスワードを指定する必要はありません。認証情報に .netrc を使用するもご覧ください。
--rotate-int 整数 n > 0 の場合、新しい秘密鍵を生成して n 個の公開鍵を保持します(ハイブリッドのみ)。
-r, --runtime String(文字列) ハイブリッド構成で定義された仮想ホストの hostAlias が含まれる URL。先頭は https:// でなければなりません。例: https://apitest.apigee-hybrid-docs.net
-s, --secret String(文字列) apigee-remote-service-cli provision コマンドから返されるシークレットを指定します。
--strength 整数 (省略可)アダプタのプロビジョニングに使用される SSL 証明書の暗号化の強度を指定します。デフォルトは 2048
-t, --token String(文字列) Apigee OAuth または SAML トークン。
-u, --username String(文字列) (基本認証の場合のみ必須 - ハイブリッドでは使用できない)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

サンプル コマンド

サンプル構成ファイルを作成する

ネイティブの 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 ベースの認証の使用もご覧ください。

使用状況

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 リモート サービス構成ファイルのパス。
ヒント: このフラグを使用すると、他のコマンド パラメータを省略できます。これは、CLI で構成ファイルから直接 pull できるためです。--config オプションの使用をご覧ください。
-e, --env String(文字列) (必須)組織内の環境。
-h, --help コマンド パラメータのヘルプを表示します。
--insecure SSL を使用する場合に安全でないサーバー接続を許可します。
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-r, --runtime String(文字列) ハイブリッド構成で定義された仮想ホストの hostAlias が含まれる URL。先頭は https:// でなければなりません。例: https://apitest.apigee-hybrid-docs.net
-v, --verbose (省略可)冗長な出力を生成します。

./apigee-remote-service-cli token create -o $ORG -e $ENV -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 \
-s icTARgaKHqvUH1dq -c config.yaml -r $RUNTIME -t $TOKEN

出力

成功すると、次のような 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 String(文字列) (必須)Apigee リモート サービス構成ファイルのパス。
ヒント: このフラグを使用すると、他のコマンド パラメータを省略できます。これは、CLI で構成ファイルから直接 pull できるためです。--config オプションの使用をご覧ください。
-e, --env String(文字列) (必須)組織内の環境。
-h, --help コマンド パラメータのヘルプを表示します。
--insecure SSL を使用する場合に安全でないサーバー接続を許可します。
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-r, --runtime String(文字列) ハイブリッド構成で定義された仮想ホストの hostAlias が含まれる URL。先頭は https:// でなければなりません。例: https://apitest.apigee-hybrid-docs.net
-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 値と一緒に保持されます。

使用量

Apigee ハイブリッドの場合

apigee-remote-service-cli token rotate-cert -o [organization] -e [environment] -t [token] -r [runtime] -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 整数 jwks に保持する証明書の数(デフォルトは 2)
-o, --org String(文字列) (必須)Apigee 組織。組織管理者である必要があります。
-r, --runtime String(文字列) ハイブリッド構成で定義された仮想ホストの hostAlias が含まれる URL。先頭は https:// でなければなりません。例: https://apitest.apigee-hybrid-docs.net
-v, --verbose (省略可)冗長な出力を生成します。

./apigee-remote-service-cli token create -o $ORG -e $ENV -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 \
-s icTARgaKHqvUH1dq -c config.yaml -r $RUNTIME -t $TOKEN

出力

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