2

std アプリ エンジン環境でエンドポイントを使用する場合 app.yaml の次の行で、アプリの開始点を定義します

- url: /_ah/spi/.*
  script: main.api 

ただし、フレックスエンジンは「gunicorn」を使用して、以下に示すように開始点を定義します

entrypoint: gunicorn -b :$PORT main:app

main.pyクラウド エンドポイントをフレックス環境で Google アプリ エンジンの開始点として定義するにはどうすればよいですか?

編集1:

このリンクからの以下の提案の後。

app.yaml を次のように更新しました。

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:api
service: s2

endpoints_api_service:
  name: echo-api.endpoints.my-project-id.cloud.goog
  config_id: my-config-id

しかし、デプロイ中にmain.pyファイルでインポートエラーが発生します

ImportError: No module named endpoints

インポートステートメントをに変更しても

from google.appengine.ext import endpoints

助けにならない

編集2:

エンドポイント ライブラリをプロジェクトの lib フォルダーに追加し、appengine_config.pyファイルを追加してこのライブラリを処理しましたが、それでも で壊れimport endpointsます。

私のディレクトリ構造については、下の画像を参照してください

ここに画像の説明を入力

4

3 に答える 3

1

App Engine フレキシブル環境のエンドポイントのクイックスタートからの要約(以下は Python を想定しています。他の言語を使用している場合は、それぞれの例を選択してください):

  • エンドポイントを構成します。

Endpoints を構成するには、構成ファイルのホスト フィールドYOUR-PROJECT-IDを独自のプロジェクト ID に置き換えます。openapi.yaml

swagger: "2.0"
info:
  description: "A simple Google Cloud Endpoints API example."
  title: "Endpoints Example"
  version: "1.0.0"
host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"
  • Open API 仕様をデプロイします。

Open API 仕様をデプロイするには、次のgcloud コマンドを実行します。

gcloud service-management deploy openapi.yaml

echo-api.endpoints.YOUR-PROJECT_ID.cloud.googこれにより、存在しない場合はその名前で新しい Cloud Endpoints サービスが作成され、 そのサービスの構成が Open API 仕様に更新されます。

このコマンドは、次のような行を含む、数行の情報を返します。

Service Configuration [2016-04-27R2] uploaded for service
"echo-api.endpoints.[YOUR-PROJECT-ID].cloud.goog"

サービス名とサービス構成 ID をメモしておきます。これは次のステップで使用されます。

  • あなたの更新app.yaml

Endpoints 構成 ID を反映するように編集app.yamlし、以下を追加して App Engine Flex で Endpoints API Management 機能を有効にし、サービス名と構成 ID を追加します。

beta_settings:
  use_endpoints_api_management: true

endpoints_api_service:
  name: echo-api.endpoints.[YOUR-PROJECT-ID].cloud.goog
  config_id: YOUR-CONFIG-ID # 2016-04-27R2 in this example.

ファイルを保存しapp.yamlます。app.yamlOpen API 仕様に変更を加える場合は、これらの手順を繰り返してファイルを更新する必要があります。

于 2016-12-29T19:01:48.147 に答える
1

Endpoints Frameworks v1.0 の場合、エンドポイント モジュールをアプリ ディレクトリにコピーして Flex にデプロイする必要があります。Cloud SDK を使用している場合は、/path/to/google-cloud-sdk/platform/google_appengine/lib/endpoints-1.0.

于 2016-12-29T21:23:32.323 に答える