我正在嘗試通過 App Engine 的靈活環境部署 Google 的 nginx hello world 示例。我使用的設定與快速入門指南中詳述的設定相同,但添加的網路設定除外app.yaml(檔案內容如下):
runtime: custom
env: flex
network:
name: my_network
subnetwork_name: my_subnet
對于復制,我的確切程序是(來自 GCP 云外殼):
- 克隆Google 的示例倉庫,
cd進入nginx目錄,- 更新
app.yaml以反映正確的網路設定(見上文), - 運行
gcloud app deploy .或gcloud beta app deploy .。
結果是錯誤 13:
53db376e88c7: Layer already exists
3baebd9b50ad: Layer already exists
1401df2b50d5: Layer already exists
57a9a0cdd450: Layer already exists
latest: digest: sha256:96324cd5dd0571fa98e461ecfc844cefc74c1bad7d621273f11f94e7676cde86 size: 2605
DONE
----------------------------------------------------------------------------------------------------
Updating service [default] (this may take several minutes)...failed.
ERROR: (gcloud.app.deploy) Error Response: [13] An internal error occurred.
我嘗試使用不同的運行狀況檢查選項進行部署,但收到以下資訊:
ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: Legacy health checks are no longer supported for the App Engine Flexible environment. Please remove the 'health_check' section from your app.yaml and configure updated health checks. For instructions on migrating to split health checks see https://cloud.google.com/appengine/docs/flexible/java/migrating-to-split-health-checks
我認為這樣做的建議已經過時了。
該應用程式本身在 docker 容器中運行良好。任何的建議都受歡迎
uj5u.com熱心網友回復:
谷歌支持提供了一個對我有用的解決方案。但是,錯誤 13 是比較籠統的,所以 YMMV。在您的部署環境中,運行以下命令:
gcloud config set interactive/hidden truegcloud app update --service-account=PROJECT_DEFAULT_APP_ENGINE_SAgcloud app deploy
1公開隱藏的命令/標志,2 設定應用程式的活動服務帳戶。
當心 -專案的默認 App Engine SA 獲得大量許可,因此可能值得將 App Engine 隔離到自己的專案中以最大程度地降低風險。
uj5u.com熱心網友回復:
我還嘗試重現您提到的相同場景,但沒有向我拋出錯誤。將網路添加到您的 app.yaml 時,您必須確保使用網路的簡稱,這里提到了這一點。
app.yaml 中的網路設定應如下所示:
network:
instance_tag: TAG_NAME
name: NETWORK_NAME
subnetwork_name: SUBNETWORK_NAME
session_affinity: true
forwarded_ports:
- PORT
- HOST_PORT:CONTAINER_PORT
- PORT/tcp
- HOST_PORT:CONTAINER_PORT/udp
在哪里name:
靈活環境中的每個 VM 實體在創建時都會分配給 Google Compute Engine 網路。使用此設定指定網路名稱。提供短名稱,而不是資源路徑(例如, default 而不是 https://www.googleapis.com/compute/v1/projects/my-project/global/networks/default)。如果您不指定網路名稱,則會將實體分配給專案的默認網路(名稱為 default)。如果要指定子網名稱,則必須指定網路名稱。
對于subnetwork_name:
選修的。您可以對網路進行分段并使用自定義子網。確保指定了網路名稱。提供短名稱,而不是資源路徑(例如, default 而不是 https://www.googleapis.com/compute/v1/projects/my-project/global/networks/default/subnetworks/default)。子網必須與應用程式位于同一區域。
如果您為您的專案使用 VPC 共享網路,這將幫助您做到這一點,您只需按照此處給出的步驟進行操作即可。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/461042.html
上一篇:如何從html中獲取影像的單獨URL,如下http(s)://<hostname>/<chosenpath>/1
