Pulumi磚資源提供者
請注意
本文將介紹Pulumi,既不提供也不支持數據磚。聯係供應商,看Pulumi支持。
本文向您展示了如何使用Python和Pulumi、第三方基礎設施代碼(IaC)平台,使您能夠創建、部署和管理數據磚資源利用熟悉的編程語言,工Beplay体育安卓版本具和工程實踐。盡管這篇文章向您展示了如何使用Python和Pulumi磚資源提供者,Pulumi支持其他語言除了Python磚,包括打印稿,JavaScript, c#。
基於Pulumi數據磚資源提供者磚起程拓殖的提供者。有關更多信息,請參見起程拓殖雲。
需求
一個Pulumi帳戶。報名參加Pulumi,如果你不已經有一個Pulumi帳戶。Pulumi是免費為個人,為團隊提供一個免費的層級。
Python3.6或更高版本。檢查是否安裝了Python,運行命令
python——版本
從你的終端或PowerShell。安裝Python,如果你沒有它已經安裝了。請注意
有些安裝Python可能需要您使用
python3
而不是python
。如果是這樣,替代python
為python3
在這篇文章。你的磚工作區實例URL例如,
https://dbc-a1b2345c-d6e7.cloud.m.eheci.com
。磚的個人訪問令牌或一個OAuth令牌服務主體為磚工作區。創建一個磚個人訪問令牌,看到的磚個人訪問令牌認證和管理個人訪問令牌。創建一個OAuth令牌服務主體,明白了使用OAuth身份驗證服務主體。
以下步驟展示了如何創建一個Pulumi磚與Python項目。對於一個教程從純雲提供者首先觀點相反,看到的開始使用AWS在Pulumi文檔。從一個編程教程language-first觀點相反,看到的Python,節點。js (JavaScript,打印稿),去,net (c#, VB, f#)在Pulumi文檔。
步驟1:創建一個Pulumi項目
在這一步中,本地開發機器上設置必要的Pulumi項目的目錄結構。然後在這個目錄中創建Pulumi項目結構。
從你的終端或PowerShell,創建一個空目錄,然後切換到它,例如:
mkdir pulumi-democdpulumi-demo
醫學博士pulumi-democdpulumi-demo
通過運行下麵的命令安裝Pulumi,這取決於您的操作係統:
在Unix或Linux上安裝Pulumi通過使用旋度:
curl https://get.pulumi.com -fsSL|上海
上安裝Pulumi macOS通過使用家釀:
釀造安裝pulumi /開發/ pulumi
在Windows上安裝Pulumi利用PowerShell權限通過升高巧克力色包管理器:
喬科省安裝pulumi
替代Pulumi安裝選項,請參閱下載並安裝在Pulumi文檔。
創建一個基本的Python Pulumi項目通過運行下麵的命令:
pulumi新的python
提示
您還可以創建一個Pulumi項目從你Pulumi賬戶在線(項目>創建項目)。然而,沒有項目模板數據磚。
如果提示,按你的輸入密鑰,然後使用web瀏覽器登錄網上Pulumi賬戶,如果你不是已經簽署。登錄後,回到你的終端或PowerShell。
當提示輸入項目名稱,接受默認的項目名稱
pulumi-demo
按輸入。當提示輸入項目描述,輸入
一個演示PythonPulumi磚項目
並按輸入。當提示輸入堆棧的名字,接受默認的堆棧的名字
dev
按輸入。Pulumi創建以下文件和子目錄pulumi-demo
目錄:Pulumi.yaml
,這是一個設置Pulumi項目列表。__main__.py
,其中包含的Python代碼編寫Pulumi項目。讓
,這是一個支持Python代碼包列表Pulumi安裝為您的項目。.gitignore
,這是一個Git的文件和目錄列表忽略了如果你想要將這個項目推向一個偏遠的Git存儲庫。的
venv
子目錄包含Pulumi虛擬環境支持Python代碼為您的項目使用。
執行一個項目的初始部署
dev
堆棧通過運行下麵的命令:pulumi起來
當提示執行此更新,按下向上箭頭鍵來導航是的然後按輸入。
複製看來生活出現的鏈接並粘貼到瀏覽器的地址欄,這需要你Pulumi賬戶在線。的
dev
堆棧的活動細節給你pulumi-demo
項目出現了。沒有多要看現在,因為沒有任何的資源在你的堆棧。你在下一步創建這些資源。
步驟2:創建磚資源
在這個步驟中,您使用Pulumi數據磚資源提供者創建,在現有數據磚工作區,一個筆記本和一個筆記本的工作運行。
在
__main.py__
Pulumi生成文件,使用您喜歡的文本編輯器或集成開發環境(IDE)輸入下麵的代碼。這段代碼聲明了Pulumi磚筆記本和工作資源及其設置:”““Python Pulumi計劃”“”進口pulumi從pulumi_databricks進口*從base64進口b64encode#身份驗證的用戶的工作區目錄路徑和電子郵件地址。#參見https://www.pulumi.com/registry/packages/databricks/api-docs/getcurrentuseruser_home_path=get_current_user()。家user_email_address=get_current_user()。user_name#定義名稱的前綴,預先考慮到資源名稱創建的#筆記本和工作資源。要做到這一點,您可以使用一個Pulumi#配置值,而不是硬編碼名稱前綴在這個文件中。##設置Pulumi配置值,運行以下命令,該命令集#“resource-prefix”“pulumi-demo”配置值#“Pulumi有關。< stack-name >。yaml”配置文件:## pulumi配置設置resource-prefix“pulumi-demo”##關於定義的更多信息和檢索硬編碼值,明白了# https://www.pulumi.com/docs/intro/concepts/config配置=pulumi。配置()resource_prefix=配置。需要(“resource-prefix”)#定義集群資源設置。node_type=配置。需要(“節點類型”)#創建一個筆記本電腦資源。#參見https://www.pulumi.com/registry/packages/databricks/api-docs/notebook#這個例子添加一個單細胞的筆記本,這是由#一個base64編碼的字符串。在實踐中,你將取代:##語言=“PYTHON”,# content_base64 = b64encode (b”顯示器(spark.range (10))”) .decode (“utf - 8”)##用這個:##源= "路徑/ /地方/ my-notebook.py”##提供更多筆記本內容更容易和更快。另外,筆記本電腦的語言#自動檢測。如果你指定一個筆記本路徑,確保它在.ipynb #沒有結束,因為Pulumi依賴工作區導入API,它不喜歡#依賴於任何特定的擴展如.ipynb在筆記本上的道路。筆記本=筆記本(resource_name=f”{resource_prefix}筆記本”,路徑=f”{user_home_path}/ Pulumi /{resource_prefix}-notebook.py”,語言=“巨蟒”,content_base64=b64encode(b“顯示(spark.range (10))”)。解碼(“utf - 8”))#出口筆記本的URL,您可以輕鬆地瀏覽。#看到https://www.pulumi.com/docs/intro/concepts/stack/輸出pulumi。出口(“筆記本URL”,筆記本。url)#創建一個工作資源。#參見https://www.pulumi.com/registry/packages/databricks/api-docs/job#這個工作使用最近的磚運行時的長期支持(LTS)#運行時程序版本ID在本文首次出版的時候,# 10.4.x-scala2.12。你可以換這晚版本。工作=工作(resource_name=f”{resource_prefix}工作”,new_cluster=JobNewClusterArgs(num_workers=1,spark_version=“10.4.x-scala2.12”,node_type_id=node_type),notebook_task=JobNotebookTaskArgs(notebook_path=f”{user_home_path}/ Pulumi /{resource_prefix}-notebook.py”),email_notifications=JobEmailNotificationsArgs(on_successes=(user_email_address),on_failures=(user_email_address]))#出口工作的URL,您可以輕鬆地瀏覽。#看到https://www.pulumi.com/docs/intro/concepts/stack/輸出pulumi。出口(“工作URL”,工作。url)
定義一個命名配置值
resource-prefix
,並設置它的硬編碼的值pulumi-demo
通過運行下麵的命令。Pulumi使用這個配置值名稱筆記本和工作:pulumi配置集resource-prefix“pulumi-demo”
Pulumi創建一個文件命名
Pulumi.dev.yaml
在相同的目錄中__main__.py
文件,並將以下代碼添加到這個YAML文件:配置:pulumi-demo: resource_prefix:pulumi-demo
使用配置值使您的代碼更加模塊化和可重用性。現在別人可以重用你
__main__.py
文件和定義一個不同的值resource_prefix
變量的內容不改變__main__.py
文件。定義一個命名配置值
節點類型
,並將其設置為下麵的硬編碼的值,通過運行以下命令。Pulumi使用這個配置值來確定類型的集群上運行的工作。pulumi配置集節點類型“i3.xlarge”
的內容
Pulumi.dev.yaml
文件現在看起來像這樣:配置:pulumi-demo:節點類型:i3.xlargepulumi-demo: resource-prefix:pulumi-demo
讓Pulumi驗證你的磚工作區,定義兩個磚特定配置的值通過運行以下命令。在這些命令:
取代
< workspace-instance-url >
與你的工作區實例URL例如,https://dbc-a1b2345c-d6e7.cloud.m.eheci.com
。取代
<訪問令牌>
你的訪問令牌的值。一定要指定——秘密
選擇。這指示Pulumi加密你的訪問令牌作為安全最佳實踐。請注意
默認情況下,Pulumi使用每堆棧由Pulumi加密密鑰管理服務,和每個值鹽、加密值。使用另一種加密提供者,明白了配置秘密加密在Pulumi文檔。
pulumi配置集磚:主機“< workspace-instance-url >”pulumi配置集磚:令牌“<訪問令牌>”——秘密
的內容
Pulumi.dev.yaml
文件現在看起來像這樣:配置:磚:主機:< your-workspace-instance-url >磚:令牌:安全:< an-encrypted-version-of-your-access-token >pulumi-demo:節點類型:i3.xlargepulumi-demo: resource_prefix:pulumi-demo
步驟3:部署資源
在這個步驟中,您激活一個Python虛擬環境Pulumi提供為您的項目作為運行Pulumi Python項目模板的一部分。這個虛擬環境有助於確保您使用正確的版本的Python, Pulumi, Pulumi磚資源提供者。有幾個Python虛擬環境框架可用,如venv,virtualenv,pipenv。這篇文章和Pulumi Python項目模板使用venv
。venv
已經包含在Python。有關更多信息,請參見創建虛擬環境。
激活Python通過運行以下命令從你的虛擬環境
pulumi-demo
目錄,根據您的操作係統和外殼類型:Beplay体育安卓版本
殼牌
命令來激活虛擬環境
Unix, Linux, macOS
bash / zsh
源venv / bin /激活
魚
源venv / bin / activate.fish
csh / tcsh
源venv / bin / activate.csh
PowerShell核心
venv / bin / Activate.ps1
窗戶
用於cmd . exe
venv \ \ activate.bat的腳本
PowerShell
venv \ \ Activate.ps1的腳本
安裝Pulumi磚資源提供者從Python包指數(PyPI)到您的虛擬環境中運行以下命令:
pip安裝pulumi-databricks
請注意
一些設施
皮普
你可能需要使用嗎pip3
而不是皮普
。如果是這樣,替代皮普
為pip3
在這篇文章。預覽Pulumi將創建的資源通過運行下麵的命令:
pulumi預覽
如果有任何錯誤報道,修複它們,然後再次運行該命令。
查看詳細報告在你Pulumi賬戶在線Pulumi將做什麼,複製看來生活鏈接,粘貼到瀏覽器的地址欄。
創建和部署的資源數據磚工作區通過運行下麵的命令:
pulumi起來
當提示執行此更新,按下向上箭頭鍵來導航是的然後按輸入。如果有任何錯誤報道,修複它們,然後再次運行該命令。
查看詳細報告什麼Pulumi Pulumi賬戶在線,複製看來生活鏈接,粘貼到瀏覽器的地址欄。
步驟4:與資源交互
在這個步驟中,您在磚工作區運行工作,負責指定的筆記本。
查看筆記本的作業將運行在您的工作空間,複製筆記本的URL鏈接,粘貼到瀏覽器的地址欄。
查看運行的工作筆記本在工作區中,複製工作的URL鏈接,粘貼到瀏覽器的地址欄。
運行工作,單擊現在運行按鈕在頁麵的工作。
工作完成後運行,查看工作運行的結果,完成運行60天(過去)工作列表頁麵,點擊最近時間條目開始時間列。的輸出窗格顯示筆記本的代碼運行的結果,打印數字1到10。
(可選)第五步:更改資源
在這個可選的步驟中,您改變筆記本的代碼,重新部署了筆記本,然後重新運行改變筆記本使用的工作。
如果你不想做出任何改變筆記本,跳到第六步:清理。
回到
__main.py__
文件,改變這行代碼:content_base64=b64encode(b“顯示(spark.range (10))”)。解碼(“utf - 8”)
,然後保存文件:
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”)
這種變化指示DataFrame指定的筆記本電腦打印的內容而不是數字1到10。
請注意
確保行代碼開始
數據
和結束“‘).decode (“utf - 8”)
充裕的邊緣你的代碼編輯器。否則,Pulumi空格插入筆記本電腦可能會導致新的Python代碼無法運行。可選地,預覽資源Pulumi將改變通過運行下麵的命令:
pulumi預覽
如果有任何錯誤報道,修複它們,然後再次運行該命令。
查看詳細報告在你Pulumi賬戶在線Pulumi將做什麼,複製看來生活鏈接,粘貼到瀏覽器的地址欄。
部署資源改變磚工作區通過運行下麵的命令:
pulumi起來
當提示執行此更新,按下向上箭頭鍵來導航是的然後按輸入。如果有任何錯誤報道,修複它們,然後再次運行該命令。
查看詳細報告什麼Pulumi Pulumi賬戶在線,複製看來生活鏈接,粘貼到瀏覽器的地址欄。
查看更改的筆記本在你的工作區,複製筆記本的URL鏈接,粘貼到瀏覽器的地址欄。
重新運行的工作改變了筆記本,複製工作的URL鏈接,粘貼到瀏覽器的地址欄。然後點擊現在運行按鈕在頁麵的工作。
工作完成後運行,查看工作運行的結果,完成運行60天(過去)工作列表頁麵,點擊最近時間條目開始時間列。的輸出窗格顯示筆記本的代碼運行的結果,它指定DataFrame打印的內容。