開始
加載和管理數據
處理數據
政府
引用和資源
2023年8月3日更新
給我們反饋
請注意
本文涵蓋了起程拓殖的雲開發工具包(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
npm- v
節點npm v
的CDKTF CLI。檢查一下你是否已經CDKTF CLI安裝,並檢查安裝的版本,運行命令cdktf——版本。安裝使用npm CDKTF CLI,如果你沒有它已經安裝了。
cdktf——版本
提示
你也可以上安裝CDKTF CLI macOS家釀。看到安裝CDKTF。
適當的語言運行時工具,如下:
Python版本3.7或更高版本pipenv2021.5.29或更高版本。檢查你是否有Python和pipenv安裝,檢查安裝版本,運行命令python——版本和pipenv——版本。安裝Python和安裝pipenv,如果你沒有他們已經安裝了。
pipenv
python——版本
pipenv——版本
python版本pipenv——版本
打印稿版本4.4或更高版本。檢查是否安裝了打字稿,檢查安裝的版本,運行命令tsc- v。安裝打印稿,如果你沒有它已經安裝了。
tsc- v
tsc - v
安裝語言先決條件。
一個磚個人訪問令牌,允許CDKTF叫磚磚中的api的工作空間。另請參閱管理個人訪問令牌。
下列之一:
磚CLI版本0.200或更高版本,配置你的磚個人訪問令牌通過運行磚配置——主機< workspace-url >——簡介< some-unique-profile-name >。看到安裝CLI和磚個人訪問令牌認證。
磚配置——主機< workspace-url >——簡介< some-unique-profile-name >
安全最佳實踐,當您使用自動化工具進行身份驗證,係統中,腳本和應用程序,磚屬於建議您使用個人訪問令牌服務主體而不是用戶工作區。為服務主體,創建令牌服務主體的管理令牌。
以下兩個磚環境變量:
DATABRICKS_HOST將你的價值工作區實例URL例如,https://1234567890123456.7.gcp.www.eheci.com
DATABRICKS_HOST
https://1234567890123456.7.gcp.www.eheci.com
DATABRICKS_TOKEN的值,設置為你的磚個人訪問令牌。
DATABRICKS_TOKEN
設置這些環境變量,看你的操作係統的文檔。
在這一步中,本地開發機器上設置必要的CDKTF項目的目錄結構。然後在這個目錄中創建CDKTF項目結構。
創建一個空目錄CDKTF項目,然後切換到它。運行以下命令在您的終端或PowerShell:
mkdir cdktf-democdcdktf-demo
醫學博士cdktf-democdcdktf-demo
通過運行下麵的命令創建一個CDKTF項目:
cdktf init -模板=python,當地
cdktf init -模板=打印稿,當地
當提示輸入項目名稱,接受默認的項目名稱cdktf-demo按輸入。
cdktf-demo
當提示輸入項目描述按下,接受默認的項目描述輸入。
如果提示你想開始從現有起程拓殖項目嗎,輸入N並按輸入。
N
如果提示你想給CDKTF團隊崩潰報告嗎,輸入n並按輸入。
n
CDKTF創建以下文件和子目錄cdktf-demo目錄:
.gitignore,這是一個Git的文件和目錄列表忽略了如果你想要將這個項目推向一個偏遠的Git存儲庫。
.gitignore
cdktf.jsonCDKTF項目,其中包含配置設置。看到配置文件有關配置設置的更多信息。
cdktf.json
幫助,其中包含的信息你下一步可以處理一些CDKTF項目。
幫助
main-test.py,其中包含支持單元測試,您可以寫CDKTF項目。看到單元測試關於單元測試的更多信息。
main-test.py
main.py,其中包含的Python代碼編寫CDKTF項目。
main.py
Pipfile和Pipfile.lockCDKTF項目,管理代碼依賴項。
Pipfile
Pipfile.lock
jest.config.js和一個__tests__子目錄管理支持單元測試,您可以編寫CDKTF項目。看到單元測試關於單元測試的更多信息。
jest.config.js
__tests__
一個node_modules子目錄,其中包含代碼CDKTF項目的依賴關係。
node_modules
main.ts,其中包含的打印稿代碼編寫CDKTF項目。
main.ts
.npmrc,package.json,package-lock.json,setup.js,tsconfig.json管理代碼依賴項和其他CDKTF項目設置。
.npmrc
package.json
package-lock.json
setup.js
tsconfig.json
在這個步驟中,您使用起程拓殖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(打印稿)。以下值替換為您自己的值來指定一個資源前綴和集群設置等工人數量,引發運行時版本字符串,節點類型。
vars.py
vars.ts
# !/usr/bin/env pythonresource_prefix=“cdktf-demo”num_workers=1spark_version=“10.4.x-scala2.12”node_type_id=“n1-standard-4”
出口常量resourcePrefix=“cdktf-demo”出口常量numWorkers=1出口常量sparkVersion=“10.4.x-scala2.12”出口常量nodeTypeId=“n1-standard-4”
在這個步驟中,您使用CDKTF CLI部署到現有的磚工作區,定義的筆記本,筆記本的運行工作。
生成起程拓殖代碼等價的CDKTF項目。要做到這一點,運行cdktfsynth命令。
cdktfsynth
cdktf synth
在做出改變之前,你可以檢查等待資源的變化。運行以下:
cdktf diff
通過運行部署筆記本和工作cdktf部署命令。
cdktf部署
當提示批準,按輸入。起程拓殖創建並部署筆記本和工作到您的工作區。
在這個步驟中,您在磚工作區運行工作,負責指定的筆記本。
查看筆記本的作業將運行在您的工作空間,複製筆記本的URL鏈接出現在的輸出cdk部署命令並粘貼到瀏覽器的地址欄。
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部署命令。
當提示批準,按輸入。起程拓殖筆記本的內容變化。
查看修改的筆記本,作業將運行在你的工作區,刷新之前打開的筆記本,或者複製筆記本的URL鏈接出現在的輸出cdk部署命令並粘貼到瀏覽器的地址欄。
查看運行的工作改變了筆記本在工作區中,刷新你的工作打開前,或複製工作的URL鏈接出現在的輸出cdk部署命令並粘貼到瀏覽器的地址欄。
在這個步驟中,您使用CDKTF CLI把筆記本和工作從你的磚工作區。
刪除從您的工作空間中運行的資源cdktf摧毀命令:
cdktf摧毀
當提示批準,按輸入。起程拓殖從工作區中刪除資源。
起程拓殖CDK磚提供者構造參考為打印稿,Python,Java,c#,去