サービスバインドの問題のトラブルシューティング

API を作成したら、サービスを API にバインドします。このセクションでは、サービスのバインド時に発生する可能性のある問題の考えられる原因と、問題のトラブルシューティング方法を説明します。

DNS サブドメインの標準形式ではない名前をバインドしている

DNS サブドメインの標準形式に準拠していない DNS 名を指定すると、エラーが発生してバインドが失敗します。

診断

培土の作成時に指定したバインド名が求められる形式と一致していない場合、コマンドからの出力でバインドに失敗したことが示されます。

The ServiceBinding "customer-API" is invalid: metadata.name: Invalid value: "customer-API": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([a-z0-9])?(\.[a-z0-9]([-a-z0-9][a-z0-9])?)*')

解決策

DNS サブドメインの標準に準拠した形式でバインド名を指定してください。

存在しないインスタンスを参照している

バインドを作成するときは、すでに作成してある API またはアダプターを、その名前で参照する必要があります。そうしないと、「ReferencesNonexistentInstance」エラーが返されます。

原因

このエラーは次の場合に発生します。

  • バインドコマンドで正しくないアダプター名を指定した (アダプターのバインド時)。

  • バインドコマンドで正しくない API 名を指定した (API のバインド時)。

  • namespace フラグが指定されていないため、​default​ 名前空間でサービスが検索された。

診断

この問題を診断するには、次のいずれかのコマンドを実行します。

  • $ asmctl api binding list

  • $ asmctl adapter binding list

    バインドの状況が ​ReferencesNonexistentInstance​ と表示されます。

解決策

正しくないバインドコマンドを削除して、正しい入力で作成し直します。

インスタンスの準備ができていない

バインドを作成する前に、API プロビジョニングが完了していて、参照されている API やアダプターの準備ができている必要があります。そうしないと、「ErrorInstanceNotReady」エラーが返されます。

診断

この問題を診断するには、API またはアダプターのどちらのバインドを使用するかに応じて次のいずれかのコマンドを使用し、参照されているインスタンスの状況を確認します。

  • $ asmctl api list

  • $ asmctl adapter list

解決策

この問題を解決する手順は、次のとおりです。

  1. アダプターまたは API のプロビジョニングが完了していない (状況が ​Provisioning​ である) 場合は、完了するまで待ちます。

  2. 状況が ​Failed​ である場合は、対応するトラブルシューティングセクションを確認します。

  3. API またはアダプターを削除する場合は、先にバインドを削除します。

  4. API またはアダプターの準備ができるまで待ちます。

    削除トランザクションが ​Deleting​ 以外の状況である必要があります。

  5. API またはアダプターの準備ができたら、バインドを再作成します。