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。如果是這樣,替代pythonpython3在這篇文章。

  • 你的磚工作區實例URL例如,https://dbc-a1b2345c-d6e7.cloud.m.eheci.com

  • 磚的個人訪問令牌或一個OAuth令牌服務主體為磚工作區。創建一個磚個人訪問令牌,看到的磚個人訪問令牌認證管理個人訪問令牌。創建一個OAuth令牌服務主體,明白了使用OAuth身份驗證服務主體

    請注意

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

以下步驟展示了如何創建一個Pulumi磚與Python項目。對於一個教程從純雲提供者首先觀點相反,看到的開始使用AWS在Pulumi文檔。從一個編程教程language-first觀點相反,看到的Python,節點。js (JavaScript,打印稿),,net (c#, VB, f#)在Pulumi文檔。

步驟1:創建一個Pulumi項目

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

  1. 從你的終端或PowerShell,創建一個空目錄,然後切換到它,例如:

    mkdir pulumi-democdpulumi-demo
    醫學博士pulumi-democdpulumi-demo
  2. 通過運行下麵的命令安裝Pulumi,這取決於您的操作係統:

    在Unix或Linux上安裝Pulumi通過使用旋度:

    curl https://get.pulumi.com -fsSL|上海

    上安裝Pulumi macOS通過使用家釀:

    釀造安裝pulumi /開發/ pulumi

    在Windows上安裝Pulumi利用PowerShell權限通過升高巧克力色包管理器:

    喬科省安裝pulumi

    替代Pulumi安裝選項,請參閱下載並安裝在Pulumi文檔。

  3. 創建一個基本的Python Pulumi項目通過運行下麵的命令:

    pulumi新的python

    提示

    您還可以創建一個Pulumi項目從你Pulumi賬戶在線(項目>創建項目)。然而,沒有項目模板數據磚。

  4. 如果提示,按你的輸入密鑰,然後使用web瀏覽器登錄網上Pulumi賬戶,如果你不是已經簽署。登錄後,回到你的終端或PowerShell。

  5. 當提示輸入項目名稱,接受默認的項目名稱pulumi-demo輸入

  6. 當提示輸入項目描述,輸入一個演示PythonPulumi項目並按輸入

  7. 當提示輸入堆棧的名字,接受默認的堆棧的名字dev輸入。Pulumi創建以下文件和子目錄pulumi-demo目錄:

    • Pulumi.yaml,這是一個設置Pulumi項目列表。

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

    • ,這是一個支持Python代碼包列表Pulumi安裝為您的項目。

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

    • venv子目錄包含Pulumi虛擬環境支持Python代碼為您的項目使用。

  8. 執行一個項目的初始部署dev堆棧通過運行下麵的命令:

    pulumi起來
  9. 當提示執行此更新,按下向上箭頭鍵來導航是的然後按輸入

  10. 複製看來生活出現的鏈接並粘貼到瀏覽器的地址欄,這需要你Pulumi賬戶在線。的dev堆棧的活動細節給你pulumi-demo項目出現了。沒有多要看現在,因為沒有任何的資源在你的堆棧。你在下一步創建這些資源。

步驟2:創建磚資源

在這個步驟中,您使用Pulumi數據磚資源提供者創建,在現有數據磚工作區,一個筆記本和一個筆記本的工作運行。

  1. __main.py__Pulumi生成文件,使用您喜歡的文本編輯器或集成開發環境(IDE)輸入下麵的代碼。這段代碼聲明了Pulumi磚筆記本工作資源及其設置:

    ”““Python Pulumi計劃”“”進口pulumipulumi_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)
  2. 定義一個命名配置值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文件。

  3. 定義一個命名配置值節點類型,並將其設置為下麵的硬編碼的值,通過運行以下命令。Pulumi使用這個配置值來確定類型的集群上運行的工作。

    pulumi配置節點類型“i3.xlarge”

    的內容Pulumi.dev.yaml文件現在看起來像這樣:

    配置:pulumi-demo:節點類型:i3.xlargepulumi-demo: resource-prefix:pulumi-demo
  4. 讓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項目模板使用venvvenv已經包含在Python。有關更多信息,請參見創建虛擬環境

  1. 激活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的腳本

  2. 安裝Pulumi磚資源提供者Python包指數(PyPI)到您的虛擬環境中運行以下命令:

    pip安裝pulumi-databricks

    請注意

    一些設施皮普你可能需要使用嗎pip3而不是皮普。如果是這樣,替代皮普pip3在這篇文章。

  3. 預覽Pulumi將創建的資源通過運行下麵的命令:

    pulumi預覽

    如果有任何錯誤報道,修複它們,然後再次運行該命令。

    查看詳細報告在你Pulumi賬戶在線Pulumi將做什麼,複製看來生活鏈接,粘貼到瀏覽器的地址欄。

  4. 創建和部署的資源數據磚工作區通過運行下麵的命令:

    pulumi起來
  5. 當提示執行此更新,按下向上箭頭鍵來導航是的然後按輸入。如果有任何錯誤報道,修複它們,然後再次運行該命令。

  6. 查看詳細報告什麼Pulumi Pulumi賬戶在線,複製看來生活鏈接,粘貼到瀏覽器的地址欄。

步驟4:與資源交互

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

  1. 查看筆記本的作業將運行在您的工作空間,複製筆記本的URL鏈接,粘貼到瀏覽器的地址欄。

  2. 查看運行的工作筆記本在工作區中,複製工作的URL鏈接,粘貼到瀏覽器的地址欄。

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

  4. 工作完成後運行,查看工作運行的結果,完成運行60天(過去)工作列表頁麵,點擊最近時間條目開始時間列。的輸出窗格顯示筆記本的代碼運行的結果,打印數字1到10。

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

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

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

  1. 回到__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代碼無法運行。

  2. 可選地,預覽資源Pulumi將改變通過運行下麵的命令:

    pulumi預覽

    如果有任何錯誤報道,修複它們,然後再次運行該命令。

    查看詳細報告在你Pulumi賬戶在線Pulumi將做什麼,複製看來生活鏈接,粘貼到瀏覽器的地址欄。

  3. 部署資源改變磚工作區通過運行下麵的命令:

    pulumi起來
  4. 當提示執行此更新,按下向上箭頭鍵來導航是的然後按輸入。如果有任何錯誤報道,修複它們,然後再次運行該命令。

  5. 查看詳細報告什麼Pulumi Pulumi賬戶在線,複製看來生活鏈接,粘貼到瀏覽器的地址欄。

  6. 查看更改的筆記本在你的工作區,複製筆記本的URL鏈接,粘貼到瀏覽器的地址欄。

  7. 重新運行的工作改變了筆記本,複製工作的URL鏈接,粘貼到瀏覽器的地址欄。然後點擊現在運行按鈕在頁麵的工作。

  8. 工作完成後運行,查看工作運行的結果,完成運行60天(過去)工作列表頁麵,點擊最近時間條目開始時間列。的輸出窗格顯示筆記本的代碼運行的結果,它指定DataFrame打印的內容。

第六步:清理

在這個步驟中,您指示Pulumi把筆記本從磚的工作空間和工作以及刪除pulumi-demo項目及其dev堆棧從Pulumi帳戶在線。

  1. 把資源從磚工作區通過運行下麵的命令:

    pulumi摧毀
  2. 當提示執行這個刪除,按箭頭鍵來導航是的然後按輸入

  3. 刪除Pulumipulumi-demo項目及其dev堆棧從你Pulumi賬戶在線通過運行下麵的命令:

    pulumi堆棧rm dev
  4. 當提示執行該刪除,類型dev然後按輸入

  5. 關閉venvPython虛擬環境,運行以下命令:

    禁用