2017-07-20 118 views
0

我正在嘗試使用Google API Python客戶端庫啓動Google Compute實例。這樣一來,便宜的實例(運行在單個內核上)可以定期啓動和停止更昂貴的實例(使用多個內核),以降低成本。使用Python啓動Google Compute實例

我已成功安裝了不同的組件,並運行Google的示例腳本create_instance.py(它創建實例,運行啓動腳本並刪除實例)。檢查用於計算引擎API的是pydoc參考,和交叉引用的其他實例()函數是如何在例如create_instance.py工作,我希望開始實例命令爲:

python compute.instances().start(project=*, zone=*, instance=*).execute() 

上述命令給出我的錯誤「後‘(’預期的表達在行:1字符:34」 - 這是第一個括號

一個我做了什麼錯

b是使用谷歌。?。使用Python的API是以編程方式從其他實例啓動實例的好方法?

回答

1
  1. 通常我會希望你需要導入一個import語句或運行時標誌(-m somemodule?)的api庫。直接從命令行運行一行python通常不是最好的處理方式。 Google提供了gcloud command line tool

  2. 通常在發送API實際命令之前調用認證/登錄功能。在Google VM上,如果VM特別授權調用API或充當特定帳戶,則它可以是ID /私鑰或空白ID /密鑰。第一次創建Google VM時,可以從計算引擎Web控制面板設置此授權。在外部虛擬機上,它需要一個id /私鑰才能提供給Google API。所以,python中的一行代碼可能無法工作,因爲它缺少這一步驟。

  3. compute.instances().start()函數需要需要參數來啓動已停止的特定實例。這意味着:

    • 的VM實例已經被先前創建
    • 虛擬機實例處於停止狀態
    • 重新啓動由特定項目的ID,一個(GEO)區確定的情況下,和即在調用提供給start

Google Cloud Python Documentation

實例名稱10

start(project = ,zone =,instance = *)啓動一個實例,該實例在使用實例()。stop方法停止後停止爲 。有關更多 信息,請參閱重新啓動實例。

參數:項目:字符串,此請求的項目ID。 (必需)
zone:string,此請求的區域名稱。 (必需)
instance:string,要啓動的實例資源的名稱。(必填)

...

+0

你說得對。 Gcloud更容易。至於你的第二個評論,所有的虛擬機存在,它處於停止狀態,我已經填寫了*在開始命令(我只是沒有讓他們在這裏公開)... – fifthace

+0

@fifthace我不回想一下要從python導入或呼叫登錄Google Compute API的內容,但期望它與以前的nodejs體驗類似。看我的編輯#2 – Paul

相關問題