開始
加載和管理數據
處理數據
政府
引用和資源
更新2023年8月8日
給我們反饋
預覽
這個特性是在公共預覽。
創建一個磚工作區需要許多步驟,當你使用穀歌雲控製台和磚在穀歌的雲賬戶控製台。本文向您展示了如何降低這種複雜性通過使用磚起程拓殖的提供者和穀歌雲平台提供商Beplay体育安卓版本創建一個磚工作區在穀歌的雲。
本文描述了如何使用磚起程拓殖的提供者創建工作區。使用控製台,明白了創建一個工作區使用帳戶控製台。創建工作區使用帳戶API,看到API參考或完整的說明。
穀歌雲賬戶。
穀歌雲項目賬戶。
使用磚起程拓殖提供者1.8.0或更高。總是使用最新版本的提供者。
一個磚在穀歌的雲賬戶在這個項目。
一個穀歌賬戶和一個穀歌服務帳戶與所需的權限。
本地開發機器上,您必須:
起程拓殖CLI。看到下載起程拓殖在起程拓殖網站上。
的穀歌雲SDK,在通過簽署gcloud auth application-default登錄項目= <項目id >命令,<項目id >是目標穀歌雲項目的ID。更多細節,請參閱安裝穀歌雲SDK和授權gcloud CLI穀歌雲網站。
<項目id >
在這一步你創建或穀歌服務帳戶,您需要創建磚工作區在穀歌的雲。一個服務帳戶是一種特殊類型的穀歌帳戶為了表示一個非人類用戶需要進行身份驗證和授權訪問數據在Google api。有關更多信息,請參見理解服務帳戶在穀歌雲身份和訪問管理文檔。
如果你有一個你想使用穀歌服務帳戶,請注意服務帳戶的電子郵件地址,跳到第2步。
如果你沒有一個穀歌服務帳戶,或者你想要創建一個不同的,執行以下操作創建一個起程拓殖:
提示
您可以創建一個穀歌服務帳戶的方式除了起程拓殖。看到創建和管理服務賬戶在穀歌雲文檔。
你當地的開發機器上創建一個位置存儲和管理的起程拓殖配置新的穀歌服務帳戶。要做到這一點,您可以創建一個空的子目錄在當前工作目錄中,然後切換到它。要做到這一點的方法之一是使用您的機器的終端運行以下命令從你當前的工作目錄,一個命令。
mkdir gcp-service-accountcdgcp-service-account
(可選)如果你計劃將來穀歌創建另一個服務帳戶,或者如果你想使用起程拓殖更改或刪除這個穀歌服務帳戶,然後考慮創建一個新的存儲庫在版本控製係統中存儲的起程拓殖配置穀歌服務帳戶。為此,按照說明在步驟3中,在本文的後麵。
在這個新的子目錄的根,使用您最喜歡的代碼編輯器創建一個文件命名service-account.tf用下麵的內容。該起程拓殖配置如下:
service-account.tf
初始化穀歌雲平台提供商。Beplay体育安卓版本
創建了穀歌服務帳戶。
分配一個內置的服務帳戶我的角色。這個角色使指定的成員扮演服務帳戶創建所需的短暫的憑證,需要驗證與穀歌雲api。
創建並分配一個服務帳戶自定義我的角色。這個角色給服務帳戶所需的權限穀歌雲項目中部署的磚工作區。
輸出的URL定製我的角色,如果你想查看角色的細節在你的穀歌雲賬戶控製台。
輸出服務帳戶的電子郵件地址。注意這個郵件地址,您將需要第二步。
如果你使用Visual Studio代碼,HashiCorp起程拓殖擴展Visual Studio代碼添加編輯功能等起程拓殖文件語法高亮顯示、智能感知、導航代碼,代碼格式,一個模塊的探險家,等等。
變量“delegate_from”{描述=“允許用戶:user.name@example.com組:deployers@example.com,或serviceAccount: sa1@project.iam.gserviceaccount.com模擬創建的服務帳戶。”類型=列表(字符串)}變量“google_project_name”{}變量“前綴”{}提供者“穀歌”{項目=var。google_project_name}資源“google_service_account”“sa2”{account_id=" ${var.prefix}sa2”display_name=“磚資源配置的服務帳戶”}數據“google_iam_policy”“這”{綁定{角色=“角色/ iam.serviceAccountTokenCreator”成員=var。delegate_from}}資源“google_service_account_iam_policy”“impersonatable”{service_account_id=google_service_account。sa2。的名字policy_data=數據。google_iam_policy。這。policy_data}資源“google_project_iam_custom_role”“workspace_creator”{role_id=" ${var.prefix}workspacecreator”標題=“磚工作空間的創造者”權限=(“iam.serviceAccounts.getIamPolicy”,“iam.serviceAccounts.setIamPolicy”,“iam.roles.create”,“iam.roles.delete”,“iam.roles.get”,“iam.roles.update”,“resourcemanager.projects.get”,“resourcemanager.projects.getIamPolicy”,“resourcemanager.projects.setIamPolicy”,“serviceusage.services.get”,“serviceusage.services.list”,“serviceusage.services.enable”]}資源“google_project_iam_member”“sa2_can_create_workspaces”{角色=google_project_iam_custom_role。workspace_creator。id成員=“serviceAccount: ${google_service_account.sa2.email}”項目=var。google_project_name}數據“google_client_config”“當前”{}輸出“service_account”{價值=google_service_account。sa2。電子郵件描述=“添加這封郵件作為用戶的磚在穀歌的雲賬戶控製台”}輸出“custom_role_url”{價值=“https://console.cloud.google.com/iam-admin/roles/details/projects%3C美元{data.google_client_config.current.project}% 3 croles % 3加元{google_project_iam_custom_role.workspace_creator.role_id}”}
創建另一個文件命名service-account.auto.tfvars在相同的子目錄,下麵的內容。取代以下值:
service-account.auto.tfvars
some@example.com用你的Google帳戶電子郵件地址。
some@example.com
my-google-project-name與Google雲計算項目的名稱,在部署磚工作區。
my-google-project-name
my-prefix一些獨特的前綴,起程拓殖用來創建獨特的服務帳戶的名稱和定義我的角色。
my-prefix
delegate_from=(“用戶:some@example.com”]google_project_name=“my-google-project-name”前綴=“my-prefix”
* .auto.tfvars文件使您能夠指定變量的值分開你的代碼。這使得你的.tf在不同的使用場景文件更模塊化和重用。
* .auto.tfvars
.tf
初始化運行的子目錄起程拓殖初始化命令。
起程拓殖初始化
起程拓殖init
檢查配置是否有效運行起程拓殖計劃命令。如果有任何錯誤,修複它們,並再次運行該命令。
起程拓殖計劃
請注意
一定要驗證與穀歌雲SDK之前運行起程拓殖計劃命令。
創建服務通過運行賬戶及其相關資源起程拓殖應用命令。
起程拓殖應用
在輸出中,注意的價值service_account代表新服務帳戶的電子郵件地址。你需要這個值為步驟2。
service_account
(可選)如果您創建了一個新的存儲庫之前在這一步中存儲的起程拓殖配置穀歌服務帳戶,一定要提交您的更改。為此,按照說明在步驟5中,在本文的後麵。
在這個步驟中,您手動啟用你的穀歌服務帳戶創建工作區磚在穀歌的雲賬戶。要做到這一點,您使用磚賬戶控製台服務帳戶添加到你的磚賬戶。然後做磚的服務帳戶管理員帳戶。
登陸你的磚帳戶的控製台。
在側邊欄,點擊用戶管理(人們)圖標。
在用戶選項卡上,單擊添加用戶。
為電子郵件,輸入你的穀歌服務帳戶的電子郵件地址。
輸入一個有意義的第一個名字和姓。
點擊發送邀請。
在用戶選項卡中,單擊服務帳戶的鏈接的名字列。
在角色選項卡,打開賬戶管理切換。
在這個步驟中,您創建一個新的存儲庫起程拓殖配置在一個版本控製係統來存儲你的磚工作區。這是一個最佳實踐來存儲、跟蹤和控製更改infrastructure-as-code (IaC)文件在一個版本控製係統。這使您能夠更好地重用這些配置在您的組織和與他人分享。這個步驟描述了如何使用GitHub,但是您也可以使用您所選擇的不同的版本控製係統。
登錄你的GitHub帳戶。
創建一個新的存儲庫在GitHub帳戶。存儲庫名稱databricks-gcp-terraform。
databricks-gcp-terraform
運行以下命令,一個命令,從開發機器的終端。在git遠程命令,取代< my-github-username >GitHub的用戶名。這些命令在當前工作目錄中創建一個空的子目錄,將其轉換為一個本地存儲庫,啟動內容,修改默認分支的名字主要,然後上傳本地存儲庫到新的存儲庫在GitHub帳戶。
git遠程
< my-github-username >
主要
mkdir databricks-gcp-workspacecddatabricks-gcp-workspace回聲“#磚起程拓殖provider-created工作區為穀歌雲”> > README。md git init git添加README。md git commit - m“第一次提交”git分支- m主要git遠程添加git@github.com起源:< my-github-username > / databricks-gcp-workspace.git git push - u主要起源
如果你得到一個“沒有權限”錯誤後運行git推命令,看到與SSH連接到GitHub在GitHub上的網站。
git推
在這個新的子目錄的根,使用您最喜歡的代碼編輯器創建一個文件命名.gitignore用下麵的內容。這個文件指示GitHub排除指定的存儲庫中的文件。這些文件可能包含敏感信息,你不會想要存儲在存儲庫供其他人瀏覽和訪問。
.gitignore
*。起程拓殖* .tfvars
你的新根的子目錄,創建一個文件命名providers.tf用下麵的內容。該起程拓殖配置初始化磚起程拓殖的提供者和穀歌雲平台提供商。Beplay体育安卓版本
providers.tf
變量“google_service_account_email”{}變量“google_project_name”{}變量“google_region”{}起程拓殖{required_providers{磚={源=“磚/磚”}穀歌={源=“hashicorp /穀歌”}}}提供者“穀歌”{項目=var。google_project_name地區=var。google_region}提供者“磚”{別名=“賬戶”主機=“https://accounts.gcp.m.eheci.com”google_service_account=var。google_service_account_email}提供者“磚”{別名=“工作區”主機=databricks_mws_workspaces。這。workspace_urlgoogle_service_account=var。google_service_account_email}
創建另一個文件命名providers.auto.tfvars在相同的子目錄,下麵的內容。取代以下值:
providers.auto.tfvars
service-account@project-name.iam.gserviceaccount.com與你的穀歌服務帳戶的電子郵件地址。
service-account@project-name.iam.gserviceaccount.com
my-google-region與穀歌雲地區的穀歌雲項目。
my-google-region
google_service_account_email=“service-account@project-name.iam.gserviceaccount.com”google_project_name=“my-google-project-name”google_region=“my-google-region”
創建另一個文件命名workspace.tf在相同的子目錄,下麵的內容。該起程拓殖配置如下:
workspace.tf
得到你的穀歌賬戶,這個配置需要的信息,比如你的Google帳戶的電子郵件地址。
得到的信息初始化穀歌雲平台提供者,這個配置需要,如你的穀歌雲項目的名稱和地區。Beplay体育安卓版本
使用指定的穀歌服務帳戶創建穀歌雲賬戶在指定的磚磚工作區與指定名稱、地區和GCS桶。
增加你的穀歌賬戶管理員集團在新的工作區與權限管理工作區。
管理員
輸出的URL到新工作區。
變量“databricks_account_id”{}變量“databricks_workspace_name”{}數據“google_client_openid_userinfo”“我”{}數據“google_client_config”“當前”{}資源“databricks_mws_workspaces”“這”{提供者=磚。賬戶account_id=var。databricks_account_idworkspace_name=var。databricks_workspace_name位置=數據。google_client_config。當前的。地區cloud_resource_container{gcp{project_id=數據。google_client_config。當前的。項目}}}數據“databricks_group”“管理員”{depends_on=(databricks_mws_workspaces。這]提供者=磚。工作空間display_name=“管理員”}資源“databricks_user”“我”{depends_on=(databricks_mws_workspaces。這]提供者=磚。工作空間user_name=數據。google_client_openid_userinfo。我。電子郵件}資源“databricks_group_member”“allow_me_to_login”{depends_on=(databricks_mws_workspaces。這]提供者=磚。工作空間group_id=數據。databricks_group。管理員。idmember_id=databricks_user。我。id}輸出“workspace_url”{價值=databricks_mws_workspaces。這。workspace_url}
創建另一個文件命名workspace.auto.tfvars在相同的子目錄,下麵的內容。取代以下值:
workspace.auto.tfvars
my-databricks-account-id與你的ID磚在穀歌的雲賬戶。
my-databricks-account-id
my-databricks-workspace-name使用一個名稱為您的新磚工作區。
my-databricks-workspace-name
databricks_account_id=“my-databricks-account-id”databricks_workspace_name=“my-databricks-workspace-name”
檢查配置是否有效運行起程拓殖計劃命令。如果有任何錯誤,修複它們,並再次運行該命令
創建工作區及其相關資源通過運行起程拓殖應用命令。
在輸出中,注意的價值workspace_url代表的URL到新工作區。
workspace_url
URL粘貼到您的web瀏覽器中打開新工作區。
在這個步驟中,您將IaC源添加到版本控製係統。這個步驟描述了如何使用GitHub,但是您也可以使用您所選擇的不同的版本控製係統。
運行以下命令,一個命令,從前麵的子目錄。這些命令創建一個新的存儲庫中的分支,IaC源文件添加到分支,然後推動本地分支到遠程存儲庫。
git - c開關databricks-workspace git添加.gitignore git添加供應商。tf git添加工作區。tf git commit - m“創建磚在穀歌的雲工作區”git push起源的頭
注意,本文使用當地狀態,這是存儲在文件中terraform.tfstate和terraform.tfstate.backup。這是好如果你是唯一的開發人員,但是如果你合作在一個團隊中,磚強烈建議您使用起程拓殖偏遠的國家相反,它可以在一個團隊的所有成員之間共享。在起程拓殖支持存儲狀態起程拓殖雲,HashiCorp領事Amazon S3, Azure Blob存儲,穀歌雲存儲,和其他選項。推動本地狀態GitHub例如可能意外暴露敏感數據,如賬戶用戶名,密碼,或令牌,這也可能觸發GitGuardian警告。
terraform.tfstate
terraform.tfstate.backup
在你的新工作空間,創建集群、筆記本和就業起程拓殖。
探索額外的起程拓殖的例子。
磚起程拓殖的提供者
磚提供者的文檔在起程拓殖注冊網站上
穀歌雲平台提供商文檔Beplay体育安卓版本在起程拓殖注冊網站上
起程拓殖文檔在起程拓殖網站上
的terraform-databricks-examples在GitHub庫