Google Cloud Shell 入門:gcloud & gsutil - Titangene Blog

文章推薦指數: 80 %
投票人數:10人

Google Cloud Shell 為你提供 gcloud command-line 存取GCP 上託管的運算資源。

Cloud Shell 是基於Debian 的VM,具有5 GB persistent disk 的home ... HomeArchivesGoogleCloudShell入門:gcloud&gsutil發表於2019-04-17|留言分類於Cloud目錄準備開始你的Lab,然後登入GCPConsole啟動GoogleCloudShell理解Regions和Zones使用commandline使用你的home目錄使用gcloud指令管理CloudStorage資料參考來源本篇是紀錄在Google的Qwiklab平台內,完成「GettingStartedwithCloudShell&gcloud」這個quest所學到的內容,包括如何使用gcloud指令,以及如何使用gsutil工具來管理CloudStorage資源,將檔案上傳至指定的bucket。

GoogleCloudShell為你提供gcloudcommand-line存取GCP上託管的運算資源。

CloudShell是基於Debian的VM,具有5GBpersistentdisk的home目錄,讓你可以輕鬆管理GCP專案和資源。

你需要的CloudSDKgcloud和其他工具都已預裝在CloudShell中,讓你可以快速啟動和執行。

若想了解如何在GCP上建立VM架設NIGNXWebserver可參考此篇。

若想了解如何在GCP上建立VM架設WindowsServer可參考此篇。

準備在點擊「StartLab」之前,準備好網路瀏覽器(推薦用GoogleChrome),並且至少40分鐘可以專注的時間,因為lab是有時間限制,當你按下「StartLab」開始學習時,無法暫停倒數計時,你只能在這段時間內使用lab提供給你的全新暫時GCPConsole可用帳號,時間到之後的幾分鐘就會自動登出。

注意:如果你有自己的個人GCP帳號或專案,請不要在此lab使用開始你的Lab,然後登入GCPConsole如果準備要開始,可以點擊右上角的「StartLab」開始:接著會出現這個畫面,因為我參加GDGTainan的活動,活動有提供Qwiklabs一個月的免費額度,所以我點選下圖左邊的「UseSubscription」:Lab會提供給你免費暫時的GCP帳號,複製帳號和密碼,然後點擊「OpenGoogleConsole」開啟GCPConsole:圖片來源:CreatingaVirtualMachine|Qwiklabs接著就會開啟登入頁面,建議另外開Chrome無痕模式來登入lab提供的帳號和密碼,因為Chrome會紀錄帳密,現在登入的只是暫時帳號,未來不需要用到:注意:這邊是登入lab提供的帳號(也就是email必須為[email protected]),如果你有自己的GCP帳號,請不要用於此lab,避免產生費用類似於[email protected]的帳號是一個Google帳號,專為Qwiklabs學生使用而建立的。

它具有特定的域名(也就是qwiklabs.net),並且已分配了IAM角色,允許你去存取該GCP專案。

接受terms和conditions:不要新增recoveryoptions或two-factorauthentication(因為這是一個臨時帳號):勾選同意服務條款:之後就可以開始使用GCPConsole囉:啟動GoogleCloudShellGoogleCloudShell是載入了開發工具的VM,它提供5GB的home目錄,並在GoogleCloud上執行。

可用GoogleCloudShell提供的command-line來存取GCP的資源。

在GCPconsole的右上方工具列中,點擊「ActivateCloudShell」按鈕:在打開的對話框內,點擊「STARTCLOUDSHELL」:連接和提供環境需要一些時間:連接後,就代表你已經過身份驗證,專案已設置為PROJECT_ID,以下圖的為例,此專案的ID為qwiklabs-gcp-f9d61ede8167e6b0:gcloud是GCP的command-line工具,他已預先安裝在CloudShell上,並且支援tab自動補齊(tab-completion)。

使用下面指令可列出有效帳號名稱:1234567$gcloudauthlistCredentialedAccountsACTIVEACCOUNT*[email protected],run:$gcloudconfigsetaccount`ACCOUNT`可以使用以下指令列出專案ID:12345$gcloudconfiglistproject[core]project=qwiklabs-gcp-f9d61ede8167e6b0Youractiveconfigurationis:[cloudshell-9292]理解Regions和ZonesComputeEngine資源位於不同的regions(地區)或zones(區域)。

region是你可以執行資源的所在特定地理位置。

每個region都有一個或多個zones。

例如,us-central1region代表美國中部地區,其中包含的Zones有us-central1-a、us-central1-b、us-central1-c與us-central1-f。

圖片來源:CreatingaVirtualMachine|Qwiklabs位於zone中的資源都稱為zonel(區域)資源,VMinstance(實例)和persistentdisk(永久磁碟)都位於zone中,如果要將persistentdisk附加到VMinstance,這兩個資源都必須位於同一個zone中。

同樣,如果要將靜態IP位址分配到instance,此instance就必須與靜態IP位於同一個region中。

詳情可參考GCP官方的Regions&Zones文件。

使用commandline在GCPconsole的右上方工具列中,點擊「ActivateCloudShell」按鈕開啟新的CloudShellsession:啟用CloudShell後,你可以使用commandlineinvokeCloudSDKgcloud指令或VMinstance上可用的其他工具,還可以在不同專案和CloudShellsession之間,將要存取的檔案儲存在persistentdiskstorage的$HOME目錄內。

$HOME目錄是私有的,其他使用者無法存取。

可以在任何gcloud指令的末端加上-h參數來查看使用指南:1$gcloud-h加上--help參數或執行gcloudhelp可以查看更詳細的help內容:1$gcloudconfig--help透過按Enter或空白建來捲動瀏覽help內容,按q按鍵會退出內容。

下面兩個指令是一樣的意思,都是用來查看詳細的help內容:12$gcloudconfig--help$gcloudhelpconfig使用你的home目錄現在讓我們試試你的HOME目錄。

就算去終止和重啟VM,CloudShellHOME錄的內容都會在所有CloudShellsession之間的專案中保留。

變更目前的工作目錄:1$cd$HOME使用vi打開.bashrc設定檔:1$vi./.bashrc使用gcloud指令檢視環境內的設定列表:1$gcloudconfiglist如果要檢查其他屬性的設定,請在指令後面加上--all參數:1$gcloudconfiglist--all管理CloudStorage資料可以使用CloudShell中的gsutil工具來管理CloudStorage資源,包括建立和刪除bucket和物件、複製和移動儲存資料以及管理bucket和物件ACLs(AccessControlList)。

gsutil還能將資料傳入和傳出CloudShellinstance。

bucket是用於儲存資料的基本容器,儲存在CloudStorage的所有資料都必須放在bucket中。

你可以用bucket來整理資料、控制資料的存取權,但bucket不能像目錄和資料夾可以巢狀儲存。

由於建立和刪除bucket有一些限制,所以你設計的儲存應用程式應儘量執行密集的物件作業和相對較少的bucket作業。

詳情可參考官方的Buckets、CreatingStorageBuckets和AccessControlList(ACL)文件。

嘗試建立CloudStoragebucket,bucket名稱不能重複,因此請將unique-name替換為其他名稱,或者append名稱讓它不重複。

1$gsutilmbgs://unique-name像我是使用名為unique-name-titan的bucket,剛好沒有重複,所以成功建立了bucket:12$gsutilmbgs://unique-name-titanCreatinggs://unique-name-titan/...如果使用重複的bucket名稱就會出現類似下面的訊息:123$gsutilmbgs://unique-nameCreatinggs://unique-name/...ServiceException:409Bucketunique-namealreadyexists.現在來建立一些資料,上傳到你的bucket。

首先,建立一個測試檔案:1$vitest.dat加一些資料進去:1Welcometogcloud!存儲檔案:1:wq現在,上傳一些檔案到你建立的bucket,請將unique-name取代成你的storagebucket:1$gsutilcptest.datgs://unique-name剛剛我是使用unique-name-titan的bucket,所以上傳指令如下,可以看到我已成功上傳:1234$gsutilcptest.datgs://unique-name-titanCopyingfile://test.dat[Content-Type=application/octet-stream]...-[1files][19.0B/19.0B]Operationcompletedover1objects/19.0B.如果是使用重複的bucket名稱上傳,就會出現類似下面的訊息:123$gsutilcptest.datgs://unique-nameCopyingfile://test.dat[Content-Type=application/octet-stream]...BadRequestException:400Projectdoesnotexist:666160882299若要查看你的bucket和檔案,請開啟導航選單,然後選擇「Storage>Browser」:然後點擊你的bucket:你應該會看到test.dat這個檔案:參考來源GettingStartedwithCloudShell&gcloud|Qwiklabs(本篇大多數的圖片來源)GCPVM分享:Prev在GCP上建立VM架設WindowsServerNextGoogleKubernetesEngine(GKE)入門相關文章在GCP上建立VM架設NIGNXWebserver本篇是紀錄在Google的Qwiklab平台內,完成「CreatingaVirtualMachine」這個quest所學到的內容,包括如何透過GCPConsole和command-line工具在GCP上建立VM架設WindowsServer本篇是紀錄在Google的Qwiklab平台內,完成「ComputeEngine:QwikStart-Windows」這個quest所學到的內容,包括如何透過GCPConsole在GCP建GCP(GoogleCloudPlatform)入門本篇是紀錄在Google的Qwiklab平台內,完成「ATourofQwiklabsandtheGoogleCloudPlatform」這個quest所學到的內容,包括如何使用以及認識QwiGoogleKubernetesEngine(GKE)入門本篇是紀錄在Google的Qwiklab平台內,完成「KubernetesEngine:QwikStart」這個quest所學到的內容,包括如何透過GKE建立容器和部署容器化應用程式。

Google在GCP建立NetworkLoadBalancer和HTTPLoadBalancer本篇是紀錄在Google的Qwiklab平台內,完成「SetUpNetworkandHTTPLoadBalancers」這個quest所學到的內容,包括如何建立多個webserverinst討論區利用blog紀錄學習歷程TitangeneBlogLoading...2020-10-12JavaScript之旅(27):Promise.any()&AggregateError2020-10-07JavaScript之旅(22):BigInt2020-09-28JavaScript之旅(13):ObjectRest/SpreadProperties2020-09-23JavaScript之旅(8):Promise.prototype.finally()2020-09-20JavaScript之旅(5):Stringmethod-padStart&padEnd2020-09-19JavaScript之旅(4):Object.keys()&Object.values()&Object.entries()2020-09-18JavaScript之旅(3):ExponentiationOperator(指數運算子)



請為這篇文章評分?