API のデプロイとテスト

このページでは、API をデプロイする方法について説明します。

始める前に

API を本番環境にデプロイする

API をデプロイするには:

  1. API を初めてデプロイする場合や API デコレータを変更した場合は、API をデプロイする前に API 構成ファイルを生成してデプロイします。

  2. ENDPOINTS_GAE_SDK 環境変数を App Engine SDK フォルダのパスに設定します([Path-to-Google-Cloud-SDK]/platform/google_appengine)。

    [Path-to-Google-Cloud-SDK] は、次のコマンドの出力に置き換えてください。

     gcloud info --format="value(installation.sdk_root)"
    
  3. API メイン ディレクトリで次のコマンドを呼び出します。

     gcloud app deploy
    
  4. デプロイが成功するまで数分待ちます。警告メッセージは無視します。デプロイが完了すると次のようなメッセージが表示されます。

     File upload done.
     Updating service [default]...done.
    
  5. API にテスト リクエストを送信して、デプロイが成功していることを確認します。例:

     curl --request POST \
        --header "Content-Type: application/json" \
        --data '{"content":"echo"}' \
        https://[PROJECT-ID].appspot.com/_ah/api/echo/v1/echo?n=2
    

    [PROJECT-ID] はプロジェクト ID で置き換え、echo は API 名で置き換えます。

  6. 次のような結果が表示されます。

     {
      "content": "echo echo"
     }
    

正常なレスポンスが返されなかった場合は、レスポンス エラーのトラブルシューティングをご覧ください。

API 構成ファイルの生成とデプロイ

API 構成の再生成と再デプロイは、API を初めてデプロイするときに必要です。一般的に、API デコレータの中で構成の詳細を変更した場合にも必要になります。

OpenAPI ドキュメントを生成してデプロイするには:

  1. プロジェクトに API 管理を追加済みであることを確認します。

  2. 次のように、API のメイン ディレクトリからフレームワーク ツールを使用して OpenAPI ドキュメントを生成します。

     python lib/endpoints/endpointscfg.py get_openapi_spec main.EchoApi \
         --hostname [YOUR_PROJECT_ID].appspot.com
    

    [YOUR_PROJECT_ID] は実際の GCP プロジェクト ID で置き換えます。表示される警告は無視してください。

    コマンドラインで複数のクラスを一覧表示できます。エンドポイントが、API 名とバージョンの組み合わせごとに OpenAPI ドキュメントを生成します。1 つのサービスとして複数の API 名を異なる API 名でデプロイする場合は、--x-google-api-name フラグも追加する必要があります。このフラグを有効にすると、API 名に制限が追加されます。たとえば、名前は正規表現 [a-z][a-z0-9]{0,39} と一致している必要があります。つまり、名前は 1~40 文字で構成する必要があります。名前には英数字(小文字)と数字を使用できます。ただし、名前の先頭を数字にすることはできません。例:

     python lib/endpoints/endpointscfg.py get_openapi_spec main.FooApi main.BarApi \
         --hostname your-service.appspot.com \
         --x-google-api-name
    
  3. 次のように、設定ファイルをデプロイします。

     gcloud endpoints services deploy echov1openapi.json
    

    複数の OpenAPI ドキュメントがある場合は、これらのドキュメントをすべてコマンドラインで一覧表示します。例:

     gcloud endpoints services deploy foov1openapi.json barv1openapi.json
    

    コマンドからは何行もの情報が返されますが、その中に次のような行があります。

     Service Configuration with version "[2016-12-01R0]" uploaded for service "[YOUR-PROJECT-ID].appspot.com"
    
  4. 返された行の中にある、サービス構成のバージョンを見つけてメモします。上記の例では 2016-12-01R0 です。この情報は後の手順で必要になります。

    バージョンは次のコマンドを使用していつでも確認できます。

     gcloud endpoints configs list --service=[YOUR-PROJECT-ID].appspot.com
    

    [PROJECT-ID] は実際のプロジェクト ID に置き換えます。

  5. プロジェクトのファイル app.yamlenv_variables セクションを次のように編集します。

     env_variables:
       # Replace with your endpoints service name.
       ENDPOINTS_SERVICE_NAME: [YOUR-PROJECT-ID].appspot.com
       # Replace with the version Id of your uploaded Endpoints service.
       ENDPOINTS_SERVICE_VERSION: [YOUR-SERVICE-VERSION]
    

    [YOUR-PROJECT-ID] は実際のプロジェクト ID で、[YOUR-SERVICE-VERSION] は前の手順で取得したサービス設定のバージョンで置き換えます(角かっこは使用しないでください)。

  6. API を再度デプロイします。

     gcloud app deploy
    

アプリの複数バージョンへデプロイする

API バージョニングの方法や複数バージョンへのデプロイ方法については、API のバージョニングをご覧ください。

ローカルで API をテストする

App Engine のローカルの開発用サーバーを使用して、ローカルで API をテストできます。ローカル開発サーバーの詳細については、ローカル開発用サーバーの使用をご覧ください。

API をローカルで実行するには:

  1. プロジェクトのルート ディレクトリから App Engine 開発用サーバーを開始します。

    dev_appserver.py [YOUR-PROJECT-DIR]

  2. curl を呼び出して API リクエストを送信します。次に例を示します。

     curl --request POST \
        --header "Content-Type: application/json" \
        --data '{"message":"echo"}' \
        "${HOST}/_ah/api/echo/v1/echo?n=2"
    
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

App Engine 用 Cloud Endpoints Frameworks
ご不明な点がありましたら、Google のサポートページをご覧ください。