起程拓殖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安裝,檢查安裝版本,運行命令節點- vnpm- 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

  • 適當的語言運行時工具,如下:

    Python版本3.7或更高版本pipenv2021.5.29或更高版本。檢查你是否有Python和pipenv安裝,檢查安裝版本,運行命令python——版本pipenv——版本安裝Python安裝pipenv,如果你沒有他們已經安裝了。

    python版本pipenv——版本

    打印稿版本4.4或更高版本。檢查是否安裝了打字稿,檢查安裝的版本,運行命令tsc- v安裝打印稿,如果你沒有它已經安裝了。

    tsc - v

    安裝語言先決條件

  • 下列之一:

    • 磚CLI版本0.200或更高版本,配置你的磚個人訪問令牌通過運行配置——主機< workspace-url >——簡介< some-unique-profile-name >。看到安裝CLI磚個人訪問令牌認證

      請注意

      作為一個安全最佳實踐進行身份驗證時使用自動化工具,係統、腳本和應用程序,磚建議您使用OAuth令牌或個人訪問令牌屬於服務主體而不是用戶工作區。為服務主體,創建令牌服務主體的管理令牌

    • 下麵的磚環境變量:

      或者,您可以使用一個個人訪問令牌,而不是服務主體的客戶ID和客戶秘密:

      設置這些環境變量,看你的操作係統的文檔。

      請注意

      作為一個安全最佳實踐進行身份驗證時使用自動化工具,係統、腳本和應用程序,磚建議您使用OAuth令牌或個人訪問令牌屬於服務主體而不是用戶工作區。為服務主體,創建令牌服務主體的管理令牌

步驟1:創建一個CDKTF項目

在這一步中,本地開發機器上設置必要的CDKTF項目的目錄結構。然後在這個目錄中創建CDKTF項目結構。

  1. 創建一個空目錄CDKTF項目,然後切換到它。運行以下命令在您的終端或PowerShell:

    mkdir cdktf-democdcdktf-demo
    醫學博士cdktf-democdcdktf-demo
  2. 通過運行下麵的命令創建一個CDKTF項目:

    cdktf init -模板=python,當地
    cdktf init -模板=打印稿,當地
  3. 當提示輸入項目名稱,接受默認的項目名稱cdktf-demo輸入

  4. 當提示輸入項目描述按下,接受默認的項目描述輸入

  5. 如果提示你想開始從現有起程拓殖項目嗎,輸入N並按輸入

  6. 如果提示你想給CDKTF團隊崩潰報告嗎,輸入n並按輸入

CDKTF創建以下文件和子目錄cdktf-demo目錄:

  • .gitignore,這是一個Git的文件和目錄列表忽略了如果你想要將這個項目推向一個偏遠的Git存儲庫。

  • cdktf.jsonCDKTF項目,其中包含配置設置。看到配置文件有關配置設置的更多信息。

  • 幫助,其中包含的信息你下一步可以處理一些CDKTF項目。

  • main-test.py,其中包含支持單元測試,您可以寫CDKTF項目。看到單元測試關於單元測試的更多信息。

  • main.py,其中包含的Python代碼編寫CDKTF項目。

  • PipfilePipfile.lockCDKTF項目,管理代碼依賴項。

  • jest.config.js和一個__tests__子目錄管理支持單元測試,您可以編寫CDKTF項目。看到單元測試關於單元測試的更多信息。

  • 一個node_modules子目錄,其中包含代碼CDKTF項目的依賴關係。

  • .gitignore,這是一個Git的文件和目錄列表忽略了如果你想要將這個項目推向一個偏遠的Git存儲庫。

  • cdktf.jsonCDKTF項目,其中包含配置設置。看到配置文件有關配置設置的更多信息。

  • 幫助,其中包含的信息你下一步可以處理一些CDKTF項目。

  • main.ts,其中包含的打印稿代碼編寫CDKTF項目。

  • .npmrc,package.json,package-lock.json,setup.js,tsconfig.json管理代碼依賴項和其他CDKTF項目設置。

第二步:定義資源

在這個步驟中,您使用起程拓殖CDK磚提供者定義一個筆記本和一個筆記本的工作運行。

  1. 安裝項目依賴關係如下:

    使用pipenv,安裝到CDKTF項目起程拓殖CDK磚提供者生成磚資源。要做到這一點,運行以下:

    pipenv安裝cdktf-cdktf-provider-databricks

    使用npm(打印稿),安裝到CDKTF項目起程拓殖CDK磚提供者生成磚資源。也安裝了打印稿node . js的定義包使用緩衝類來編寫代碼到筆記本。要做到這一點,運行以下:

    npm安裝@cdktf / provider-databricks——迫使npm安裝save-dev @types /節點
  2. 替換的內容main.py文件(對於Python)或main.ts用下麵的代碼文件(打印稿)。這段代碼驗證與磚CDKTF工作區,然後生成一個筆記本和一份工作運行的筆記本。查看這段代碼語法文檔,請參閱起程拓殖CDK磚提供者構造參考Python打印稿

    # !/usr/bin/env pythonunicodedata進口的名字構造進口構造cdktf進口應用程序,TerraformStack,TerraformOutputcdktf_cdktf_provider_databricks進口*進口varbase64進口b64encodeMyStack(TerraformStack):def__init__(自我,範圍:構造,ns:str):超級()__init__(範圍,ns)DatabricksProvider(範圍=自我,id=“databricksAuth”)current_user=DataDatabricksCurrentUser(範圍=自我,id_=“currentUser”)#定義筆記本。筆記本=筆記本(範圍=自我,id_=“筆記本”,路徑=f{current_user}/ CDKTF /{varresource_prefix}-notebook.py”,語言=“巨蟒”,content_base64=b64encode(b“顯示(spark.range (10))”)解碼(“utf - 8”))#定義工作運行的筆記本。工作=工作(範圍=自我,id_=“工作”,的名字=f{varresource_prefix}工作”,new_cluster=JobNewCluster(num_workers=varnum_workers,spark_version=varspark_version,node_type_id=varnode_type_id),notebook_task=JobNotebookTask(notebook_path=f{current_user}/ CDKTF /{varresource_prefix}-notebook.py”),email_notifications=JobEmailNotifications(on_success=(current_useruser_name),on_failure=(current_useruser_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 /$ {varresourcePrefix}-notebook.py”,語言:“巨蟒”,contentBase64:Buffer.from(“顯示(spark.range (10))”,“utf8 ")。toString(“base64”)});/ /定義工作運行的筆記本。常量工作=工作(,“工作”,{的名字:$ {varresourcePrefix}工作的,newCluster:{numWorkers:vars.numWorkers,sparkVersion:vars.sparkVersion,nodeTypeId:vars.nodeTypeId},notebookTask:{notebookPath:$ {currentUser}/ CDKTF /$ {varresourcePrefix}-notebook.py”},emailNotifications:{調用onSuccess:(currentUser用戶名),onFailure:(currentUser用戶名]}});/ /輸出筆記本和工作的url。TerraformOutput(,“筆記本URL”,{價值:notebook.url});TerraformOutput(,“工作”的URL,{價值:job.url});}}常量應用程序=應用程序();MyStack(應用程序,“cdktf-demo”);應用程序synth();
  3. 創建一個文件命名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部署到現有的磚工作區,定義的筆記本,筆記本的運行工作。

  1. 生成起程拓殖代碼等價的CDKTF項目。要做到這一點,運行cdktfsynth命令。

    cdktf synth
  2. 在做出改變之前,你可以檢查等待資源的變化。運行以下:

    cdktf diff
  3. 通過運行部署筆記本和工作cdktf部署命令。

    cdktf部署
  4. 當提示批準,按輸入。起程拓殖創建並部署筆記本和工作到您的工作區。

步驟4:與資源交互

在這個步驟中,您在磚工作區運行工作,負責指定的筆記本。

  1. 查看筆記本的作業將運行在您的工作空間,複製筆記本的URL鏈接出現在的輸出cdk部署命令並粘貼到瀏覽器的地址欄。

  2. 查看運行的工作筆記本在工作區中,複製工作的URL鏈接出現在的輸出cdk部署命令並粘貼到瀏覽器的地址欄。

  3. 運行工作,單擊現在運行按鈕在頁麵的工作。

(可選)第五步:更改資源

在這個可選的步驟中,您改變筆記本的代碼,重新部署了筆記本,然後重新運行改變筆記本使用的工作。

如果你不想做出任何改變筆記本,跳到第六步:清理

  1. main.py文件(對於Python)或main.ts文件(打印稿)改變筆記本變量聲明如下:

    筆記本=筆記本(範圍=自我,id_=“筆記本”,路徑=f{current_user}/ CDKTF /{varresource_prefix}-notebook.py”,語言=“巨蟒”,content_base64=b64encode(b“顯示(spark.range (10))”)解碼(“utf - 8”))
    常量筆記本=筆記本(,“筆記本”,{路徑:currentUser.home+“CDKTF /”+varresourcePrefix+“-notebook.py”,語言:“巨蟒”,contentBase64:Buffer.from(“顯示(spark.range (10))”,“utf8 ")。toString(“base64”)});

    如下:

    筆記本=筆記本(範圍=自我,id_=“筆記本”,路徑=f{current_user}/ CDKTF /{varresource_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 /”+varresourcePrefix+“-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代碼無法運行。

  2. 重新生成起程拓殖CDKTF項目代碼等價。要做到這一點,運行以下:

    cdktf synth
  3. 在做出改變之前,你可以檢查等待資源的變化。運行以下:

    cdktf diff
  4. 通過運行部署筆記本更改cdktf部署命令。

    cdktf部署
  5. 當提示批準,按輸入。起程拓殖筆記本的內容變化。

  6. 查看修改的筆記本,作業將運行在你的工作區,刷新之前打開的筆記本,或者複製筆記本的URL鏈接出現在的輸出cdk部署命令並粘貼到瀏覽器的地址欄。

  7. 查看運行的工作改變了筆記本在工作區中,刷新你的工作打開前,或複製工作的URL鏈接出現在的輸出cdk部署命令並粘貼到瀏覽器的地址欄。

  8. 運行工作,單擊現在運行按鈕在頁麵的工作。

第六步:清理

在這個步驟中,您使用CDKTF CLI把筆記本和工作從你的磚工作區。

  1. 刪除從您的工作空間中運行的資源cdktf摧毀命令:

    cdktf摧毀
  2. 當提示批準,按輸入。起程拓殖從工作區中刪除資源。