起程拓殖CDK磚提供者
請注意
本文涵蓋了起程拓殖的雲開發工具包(CDKTF),由磚既不提供也不支持。聯係供應商,請參閱起程拓殖社區。
本文向您展示了如何使用Python或打印稿以及起程拓殖CDK磚提供者和雲起程拓殖的開發工具包(CDKTF)。CDKTF第三方,基礎設施代碼(IaC)平台,使您能夠創建、部署和管理數據磚資源利用熟悉的編程語言,工具和工程實踐Beplay体育安卓版本。盡管本文向您展示了如何使用Python和打印稿,CDKTF支持額外的語言(如Java、c#和。
起程拓殖CDK數據磚提供者是基於磚起程拓殖的提供者。有關更多信息,請參見起程拓殖雲。CDKTF基於AWS雲開發工具包(AWS CDK)。
需求
你必須有一個磚工作區,正如本文資源部署到現有的工作空間。
本地開發機器上,您必須安裝以下:
起程拓殖,版本1.1或更高版本。檢查一下你是否已經起程拓殖安裝,檢查安裝的版本,運行命令
起程拓殖- v
從你的終端或PowerShell。安裝起程拓殖,如果你沒有它已經安裝了。起程拓殖- v
node . js,版本16.13或更高版本npm。檢查你是否有節點。js和
npm
安裝,檢查安裝版本,運行命令節點- v
和npm- v
。最新版本的節點。js已經包含npm
。安裝節點。js和npmby using Node Version Manager (nvm),如果你沒有節點。js和npm
已經安裝。節點npm v
的CDKTF CLI。檢查一下你是否已經CDKTF CLI安裝,並檢查安裝的版本,運行命令
cdktf——版本
。安裝使用npm CDKTF CLI,如果你沒有它已經安裝了。cdktf——版本
提示
你也可以上安裝CDKTF CLI macOS家釀。看到安裝CDKTF。
適當的語言運行時工具,如下:
下列之一:
磚CLI版本0.200或更高版本,配置你的磚個人訪問令牌通過運行
磚配置——主機< workspace-url >——簡介< some-unique-profile-name >
。看到安裝CLI和磚個人訪問令牌認證。下麵的磚環境變量:
DATABRICKS_HOST
將你的價值工作區實例URL例如,https://dbc - 1234567890123456. cloud.m.eheci.com
DATABRICKS_CLIENT_ID
將客戶機ID的值,也稱為應用程序ID,服務主體。看到使用OAuth身份驗證服務主體。DATABRICKS_CLIENT_SECRET
的值,設置為客戶端服務主體的秘密。看到使用OAuth身份驗證服務主體。
或者,您可以使用一個個人訪問令牌,而不是服務主體的客戶ID和客戶秘密:
設置這些環境變量,看你的操作係統的文檔。
步驟1:創建一個CDKTF項目
在這一步中,本地開發機器上設置必要的CDKTF項目的目錄結構。然後在這個目錄中創建CDKTF項目結構。
創建一個空目錄CDKTF項目,然後切換到它。運行以下命令在您的終端或PowerShell:
mkdir cdktf-democdcdktf-demo
醫學博士cdktf-democdcdktf-demo
通過運行下麵的命令創建一個CDKTF項目:
cdktf init -模板=python,當地
cdktf init -模板=打印稿,當地
當提示輸入項目名稱,接受默認的項目名稱
cdktf-demo
按輸入。當提示輸入項目描述按下,接受默認的項目描述輸入。
如果提示你想開始從現有起程拓殖項目嗎,輸入
N
並按輸入。如果提示你想給CDKTF團隊崩潰報告嗎,輸入
n
並按輸入。
CDKTF創建以下文件和子目錄cdktf-demo
目錄:
jest.config.js
和一個__tests__
子目錄管理支持單元測試,您可以編寫CDKTF項目。看到單元測試關於單元測試的更多信息。一個
node_modules
子目錄,其中包含代碼CDKTF項目的依賴關係。.gitignore
,這是一個Git的文件和目錄列表忽略了如果你想要將這個項目推向一個偏遠的Git存儲庫。cdktf.json
CDKTF項目,其中包含配置設置。看到配置文件有關配置設置的更多信息。幫助
,其中包含的信息你下一步可以處理一些CDKTF項目。main.ts
,其中包含的打印稿代碼編寫CDKTF項目。.npmrc
,package.json
,package-lock.json
,setup.js
,tsconfig.json
管理代碼依賴項和其他CDKTF項目設置。
第二步:定義資源
在這個步驟中,您使用起程拓殖CDK磚提供者定義一個筆記本和一個筆記本的工作運行。
安裝項目依賴關係如下:
使用
pipenv
,安裝到CDKTF項目起程拓殖CDK磚提供者生成磚資源。要做到這一點,運行以下:pipenv安裝cdktf-cdktf-provider-databricks
使用
npm
(打印稿),安裝到CDKTF項目起程拓殖CDK磚提供者生成磚資源。也安裝了打印稿node . js的定義包使用緩衝
類來編寫代碼到筆記本。要做到這一點,運行以下:npm安裝@cdktf / provider-databricks——迫使npm安裝save-dev @types /節點
替換的內容
main.py
文件(對於Python)或main.ts
用下麵的代碼文件(打印稿)。這段代碼驗證與磚CDKTF工作區,然後生成一個筆記本和一份工作運行的筆記本。查看這段代碼語法文檔,請參閱起程拓殖CDK磚提供者構造參考為Python或打印稿。# !/usr/bin/env python從unicodedata進口的名字從構造進口構造從cdktf進口應用程序,TerraformStack,TerraformOutput從cdktf_cdktf_provider_databricks進口*進口var從base64進口b64encode類MyStack(TerraformStack):def__init__(自我,範圍:構造,ns:str):超級()。__init__(範圍,ns)DatabricksProvider(範圍=自我,id=“databricksAuth”)current_user=DataDatabricksCurrentUser(範圍=自我,id_=“currentUser”)#定義筆記本。筆記本=筆記本(範圍=自我,id_=“筆記本”,路徑=f”{current_user。家}/ CDKTF /{var。resource_prefix}-notebook.py”,語言=“巨蟒”,content_base64=b64encode(b“顯示(spark.range (10))”)。解碼(“utf - 8”))#定義工作運行的筆記本。工作=工作(範圍=自我,id_=“工作”,的名字=f”{var。resource_prefix}工作”,new_cluster=JobNewCluster(num_workers=var。num_workers,spark_version=var。spark_version,node_type_id=var。node_type_id),notebook_task=JobNotebookTask(notebook_path=f”{current_user。家}/ CDKTF /{var。resource_prefix}-notebook.py”),email_notifications=JobEmailNotifications(on_success=(current_user。user_name),on_failure=(current_user。user_name]))#輸出筆記本和工作的url。TerraformOutput(範圍=自我,id=“筆記本URL”,價值=筆記本。url)TerraformOutput(範圍=自我,id=“工作”的URL,價值=工作。url)應用程序=應用程序()MyStack(應用程序,“cdktf-python”)應用程序。synth()
進口{構造}從“結構”;進口{應用程序,TerraformOutput,TerraformStack}從“cdktf”;進口{DatabricksProvider,DataDatabricksCurrentUser,筆記本,工作}從“@cdktf / provider-databricks”;進口*作為var從”。/ var”;類MyStack擴展TerraformStack{構造函數(範圍:構造,的名字:字符串){超級(範圍,的名字);新DatabricksProvider(這,“databricksAuth”,{})常量currentUser=新DataDatabricksCurrentUser(這,“currentUser”,{});/ /定義筆記本。常量筆記本=新筆記本(這,“筆記本”,{路徑:”$ {currentUser。家}/ CDKTF /$ {var。resourcePrefix}-notebook.py”,語言:“巨蟒”,contentBase64:Buffer.from(“顯示(spark.range (10))”,“utf8 ")。toString(“base64”)});/ /定義工作運行的筆記本。常量工作=新工作(這,“工作”,{的名字:”$ {var。resourcePrefix}工作的,newCluster:{numWorkers:vars.numWorkers,sparkVersion:vars.sparkVersion,nodeTypeId:vars.nodeTypeId},notebookTask:{notebookPath:”$ {currentUser。家}/ CDKTF /$ {var。resourcePrefix}-notebook.py”},emailNotifications:{調用onSuccess:(currentUser。用戶名),onFailure:(currentUser。用戶名]}});/ /輸出筆記本和工作的url。新TerraformOutput(這,“筆記本URL”,{價值:notebook.url});新TerraformOutput(這,“工作”的URL,{價值:job.url});}}常量應用程序=新應用程序();新MyStack(應用程序,“cdktf-demo”);應用程序。synth();
創建一個文件命名
vars.py
(對於Python)或vars.ts
(打印稿)在相同的目錄中main.py
(對於Python)或main.ts
(打印稿)。以下值替換為您自己的值來指定一個資源前綴和集群設置等工人數量,引發運行時版本字符串,節點類型。# !/usr/bin/env pythonresource_prefix=“cdktf-demo”num_workers=1spark_version=“10.4.x-scala2.12”node_type_id=“i3.xlarge”
出口常量resourcePrefix=“cdktf-demo”出口常量numWorkers=1出口常量sparkVersion=“10.4.x-scala2.12”出口常量nodeTypeId=“i3.xlarge”
步驟3:部署資源
在這個步驟中,您使用CDKTF CLI部署到現有的磚工作區,定義的筆記本,筆記本的運行工作。
生成起程拓殖代碼等價的CDKTF項目。要做到這一點,運行
cdktfsynth
命令。cdktf synth
在做出改變之前,你可以檢查等待資源的變化。運行以下:
cdktf diff
通過運行部署筆記本和工作
cdktf部署
命令。cdktf部署
當提示批準,按輸入。起程拓殖創建並部署筆記本和工作到您的工作區。
步驟4:與資源交互
在這個步驟中,您在磚工作區運行工作,負責指定的筆記本。
查看筆記本的作業將運行在您的工作空間,複製筆記本的URL鏈接出現在的輸出
cdk部署
命令並粘貼到瀏覽器的地址欄。查看運行的工作筆記本在工作區中,複製工作的URL鏈接出現在的輸出
cdk部署
命令並粘貼到瀏覽器的地址欄。運行工作,單擊現在運行按鈕在頁麵的工作。
(可選)第五步:更改資源
在這個可選的步驟中,您改變筆記本的代碼,重新部署了筆記本,然後重新運行改變筆記本使用的工作。
如果你不想做出任何改變筆記本,跳到第六步:清理。
在
main.py
文件(對於Python)或main.ts
文件(打印稿)改變筆記本
變量聲明如下:筆記本=筆記本(範圍=自我,id_=“筆記本”,路徑=f”{current_user。家}/ CDKTF /{var。resource_prefix}-notebook.py”,語言=“巨蟒”,content_base64=b64encode(b“顯示(spark.range (10))”)。解碼(“utf - 8”))
常量筆記本=新筆記本(這,“筆記本”,{路徑:currentUser.home+“CDKTF /”+var。resourcePrefix+“-notebook.py”,語言:“巨蟒”,contentBase64:Buffer.from(“顯示(spark.range (10))”,“utf8 ")。toString(“base64”)});
如下:
筆記本=筆記本(範圍=自我,id_=“筆記本”,路徑=f”{current_user。家}/ CDKTF /{var。resource_prefix}-notebook.py”,語言=“巨蟒”,content_base64=b64encode(b“‘data = ({“類別”:“一”,“ID”: 1、“價值”:121.44},{“類別”:“B”,“ID”: 2,“價值”:300.01},{“類別”:“C”,“ID”: 3,“價值”:10.99},{“類別”:“E”,“ID”: 4,“價值”:33.87}]df = spark.createDataFrame(數據)顯示器(df)“‘)。解碼(“utf - 8”))
常量筆記本=新筆記本(這,“筆記本”,{路徑:currentUser.home+“CDKTF /”+var。resourcePrefix+“-notebook.py”,語言:“巨蟒”,contentBase64:Buffer.from(”data = ({“類別”:“一”,“ID”: 1、“價值”:121.44},{“類別”:“B”,“ID”: 2,“價值”:300.01},{“類別”:“C”,“ID”: 3,“價值”:10.99},{“類別”:“E”,“ID”: 4,“價值”:33.87}]df = spark.createDataFrame(數據)顯示器(df)”,“utf8 ")。toString(“base64”)});
請注意
確保行代碼開始和結束引號(“)充裕的邊緣你的代碼編輯器。起程拓殖將插入空白筆記本,否則,可能會引起新的Python代碼無法運行。
重新生成起程拓殖CDKTF項目代碼等價。要做到這一點,運行以下:
cdktf synth
在做出改變之前,你可以檢查等待資源的變化。運行以下:
cdktf diff
通過運行部署筆記本更改
cdktf部署
命令。cdktf部署
當提示批準,按輸入。起程拓殖筆記本的內容變化。
查看修改的筆記本,作業將運行在你的工作區,刷新之前打開的筆記本,或者複製筆記本的URL鏈接出現在的輸出
cdk部署
命令並粘貼到瀏覽器的地址欄。查看運行的工作改變了筆記本在工作區中,刷新你的工作打開前,或複製工作的URL鏈接出現在的輸出
cdk部署
命令並粘貼到瀏覽器的地址欄。運行工作,單擊現在運行按鈕在頁麵的工作。