亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法在基仕伯中指定標志

無法在基仕伯中指定標志

慕工程0101907 2022-09-12 16:22:29
我有一個Go服務器程序,需要在運行時傳遞一個特定的gflag值,但我無法在GCP的app.yaml文件中指定它。我對 GCP 很陌生,所以這可能是一個不方便的查詢。這是我的 Go 代碼結構:project_root   |   |___cmd        |___ main                |___ main.go                |___ foo_handlers.go (defines FooHandler(w, r))                |___ bar_handlers.go (defines BarHandler(w, r))main.go 是典型的戈蘭 HTTP 服務器程序,大致具有以下結構:func main() {    // Flags    flag.StringVar(        &SomeFlagVar,         "some_flag", // flag name        "dev_value", // default value        "Some Flag")    flag.Parse()    // Foo    http.HandleFunc("/foo", FooHandler)    // Bar    http.HandleFunc("/bar/", BarHandler)    // Server starting boiler plate code    http.ListenAndServe(..)我的 GCP 應用程序.yaml 文件大致如下所示:runtime: go114main: ./cmd/mainhandlers:- url: /.*  script: auto這工作正常,但正如你所注意到的,我無法將任何自定義值傳遞給標志?,F在,我只是將默認標志值硬編碼為在 GCP 中部署的首選值,并且我不會檢查該更改,這顯然是實現目標的一種非常粗糙的方法。some_flag我已嘗試將配置設置為:或entrypointentrypoint: ./cmd/main/main --some_flag=gcpentrypoint: .bin/main --some_flag=gcp但是對于這兩種情況,GCP都會出錯,并帶有表單的錯誤。/bin/sh: 1: exec: bin/main: not found我可以通過指定一個網絡測功機,在Heroku中非常容易地實現相同的目標,如下所示: bin/main --some_flag=heroku如何在 GCP 應用中進行相同的設置?我正在使用 GCP 標準環境。我不想使用相同的環境變量。謝謝!
查看完整描述

1 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

您無法使用應用引擎將標志傳遞給主函數。您有 3 種解決方案:

  1. 堅持使用應用引擎標準,并使用環境變量而不是標志

  2. 使用具有自定義運行時的靈活應用引擎。這樣,您必須提供 Docker 文件,因此您可以指定所需的入口點。但是,應用程序引擎的靈活性不能擴展到0,因此對于小型和低流量的應用程序來說非常昂貴

  3. 作為“應用引擎靈活”,請定義一個 Docker 文件,但這次將其部署在云上運行。

就個人而言,我建議使用環境變量,因為如果要更改值,則不必重新構建容器,只需更改值并部署新修訂版本(相同的容器,但不同的上下文)


查看完整回答
反對 回復 2022-09-12
  • 1 回答
  • 0 關注
  • 83 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號