磚SDK的去

在本文中,您將了解如何在磚自動化業務賬戶、工作區和相關資源磚SDK的去

實驗

是在一個磚SDK實驗狀態。提供反饋,問問題,和報告問題,使用問題選項卡的磚SDK在GitHub庫。

實驗時期,磚是積極致力於穩定磚SDK的接口。生成API為所有客戶服務從磚規範文件同步平台。Beplay体育安卓版本你是高度鼓勵銷的確切的版本go.mod文件,你想使用和閱讀更新日誌磚文檔的每個版本的變化。有些接口會比其他的要穩定得多。對於那些還沒有接口夜間測試,磚可能較小記錄不向後兼容的改變,如修複映射的正確性intint64或重命名方法或某種類型的名字帶來更多的一致性。

在你開始之前

在您開始使用磚SDK,您的開發機必須有:

開始使用的磚SDK

  1. 在您的開發機去了安裝,現有的代碼項目創建,磚身份驗證配置,創建一個go.mod文件來跟蹤你去通過運行代碼的依賴關係國防部初始化命令,例如:

    去國防部init樣本
  2. 把磚SDK的依賴包通過運行國防部編輯需要命令,取代0.8.0與最新版本的磚SDK包作為中列出更新日誌:

    去國防部編輯需要github.com/databricks/databricks-sdk-go@v0.8.0

    你的go.mod文件現在應該像這樣:

    模塊樣本1.18需要githubcom//- - - - - -sdk- - - - - -.8.0
  3. 在你的項目中,創建一個代碼文件,進口的磚SDK。下麵的例子,在一個文件命名main.go用下麵的內容,隻需列出所有集群在磚工作區:

    主要進口(“背景”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/compute”)函數主要(){w:=必須(NewWorkspaceClient())所有,犯錯:=w集群ListAll(上下文背景(),計算ListClustersRequest{})如果犯錯! ={恐慌(犯錯)}_,c:=範圍所有{println(cClusterName)}}
  4. 添加任何失蹤模塊依賴關係通過運行國防部整潔命令:

    去國防部整潔

    請注意

    如果你得到這個錯誤走:警告:“所有”匹配沒有,你忘了添加一個代碼文件,進口磚SDK。

  5. 抓住所有的副本包支持構建和測試所需的包主要模塊,通過運行國防部供應商命令:

    去國防部供應商
  6. 設置您的開發機磚身份驗證

  7. 運行您的代碼文件,假設一個命名的文件main.go,通過運行運行命令:

    去運行main.go

    請注意

    不設置* databricks.Config作為參數前調用w:=databricks.Must (databricks.NewWorkspaceClient ())的磚SDK的去使用其默認程序試圖執行磚身份驗證。覆蓋默認行為,明白了驗證配你的磚的磚SDK的帳戶或工作區

驗證配你的磚的磚SDK的帳戶或工作區

磚自動化運行命令在一個磚帳戶或工作區,您必須首先驗證配你的磚的磚SDK的帳戶或在運行時工作區中。磚SDK的去嚐試驗證通過使用以下身份驗證方法默認情況下,按照以下順序,直到成功。如果磚SDK不能成功地驗證這些方法,它返回錯誤恐慌:失敗的要求:默認的身份驗證:不能配置默認的憑證並停止運行。你可以覆蓋默認行為,如以下部分所述。

  1. 個人訪問令牌身份驗證。

  2. 穀歌雲ID身份驗證。

  3. 穀歌雲憑據身份驗證。

對於每一個認證方法,去尋找身份驗證憑證的磚SDK的以下位置在默認情況下,按照以下順序,直到找到一組,它可以使用。

  1. 硬編碼字段* databricks.Config

  2. 環境變量

  3. 磚配置概要文件,如果適用於當前的身份驗證方法。

  4. 穀歌雲CLI信息價值,如果適用於當前的身份驗證方法。

以下部分描述每一種身份驗證方法,每個方法的位置。

令牌驗證

是默認的,磚SDK先試圖驗證使用磚與磚個人訪問令牌身份驗證。

你明確指示的磚SDK可以開始執行磚令牌的身份驗證設置憑證config.PatCredentials* databricks.Config,例如:

w:=必須(NewWorkspaceClient(&配置{憑證:配置PatCredentials{},/ /導入"github.com/databricks/databricks-sdk-go/config”}))

要執行磚個人訪問令牌的身份驗證,您必須提供磚SDK為如下:

  • 磚主機URL。

  • 一個磚個人訪問令牌

  • 磚帳戶ID,如果你叫磚戶頭級別的操作。

磚SDK先檢查看看主機,令牌,可能AccountID字段中設置* databricks.Config,例如:

w:=必須(NewWorkspaceClient(&配置{主機:“https://..”。,令牌:“dapi……”,憑證:配置PatCredentials{},/ /導入"github.com/databricks/databricks-sdk-go/config”}))

警告

磚強烈阻礙了硬編碼的信息,如令牌和帳戶id* databricks.Config,因為這可以暴露敏感信息在純文本版本控製係統。磚建議你使用環境變量或磚配置概要文件,您設置您的開發機器上。

接下來的磚SDK的檢查環境變量設置如下:

  • DATABRICKS_HOST

  • DATABRICKS_TOKEN

  • DATABRICKS_ACCOUNT_ID,如果DATABRICKS_HOST也將https://accounts.gcp.www.eheci.com

請注意

如果前麵的設置環境變量,磚SDK為可能會返回錯誤恐慌:驗證:更多的一個授權方法配置停止運行,如果您的開發機器上也存在如下:

  • 磚配置概要文件命名默認的在你的.databrickscfg文件。

  • 環境變量DATABRICKS_USERNAMEDATABRICKS_PASSWORD

為了解決這個錯誤,要麼刪除默認的配置文件或環境變量DATABRICKS_USERNAMEDATABRICKS_PASSWORD從開發機器,然後嚐試再次運行您的代碼。

如果前麵的環境變量沒有設置,磚SDK為下一步檢查磚配置概要文件命名默認的設置在你的.databrickscfg文件。這個概要文件必須包含以下字段:

  • 主機

  • 令牌

  • account_id,如果主機也將https://accounts.gcp.www.eheci.com

你可以提供一個備用配置文件名稱,例如:

w:=必須(NewWorkspaceClient(&配置{配置文件:“< alternate-profile-name >”,憑證:配置PatCredentials{},/ /導入"github.com/databricks/databricks-sdk-go/config”}))

請注意

如果一個磚配置概要文件命名默認的設置在你的.databrickscfg的磚SDK文件可能會返回錯誤恐慌:驗證:更多的一個授權方法配置停止運行,如果您的開發機器上也存在如下:

  • 環境變量DATABRICKS_USERNAMEDATABRICKS_PASSWORD

為了解決這個錯誤,要麼刪除默認的配置文件或環境變量DATABRICKS_USERNAMEDATABRICKS_PASSWORD從開發機器,並再次嚐試運行您的代碼。

穀歌雲ID認證

要執行穀歌雲ID身份驗證,您必須使用穀歌雲CLI成功地登錄到穀歌雲。您還必須提供磚SDK為如下:

你指導的磚SDK可以開始執行穀歌雲ID認證,通過設置憑證config.GoogleDefaultCredentials* databricks.Config,例如:

w:=必須(NewWorkspaceClient(&配置{憑證:配置GoogleDefaultCredentials{},/ /導入"github.com/databricks/databricks-sdk-go/config”}))

在你運行gcloud身份驗證application-default登錄並按照屏幕上的指令完成簽署在穀歌雲,磚SDK先檢查看看主機GoogleServiceAccount字段中設置* databricks.Config

謹慎

當磚建議謹慎使用硬編碼信息,如穀歌雲服務帳戶的電子郵件地址* databricks.Config,因為這可以暴露敏感信息在純文本版本控製係統。磚建議您使用您在您的開發機器上設置環境變量。

如果前麵的字段是不設置,接下來的磚SDK的檢查環境變量設置如下:

  • DATABRICKS_HOST

  • DATABRICKS_GOOGLE_SERVICE_ACCOUNT

如果前麵的環境變量沒有設置,磚SDK為下一步檢查磚配置概要文件命名默認的配置文件設置在你的.databrickscfg文件。這個概要文件必須包含以下字段:

  • 主機

  • google_service_account

你可以通過設置提供另一個配置文件名稱配置文件論點* databricks.Config

如果磚SDK不能成功地驗證通過穀歌雲ID認證,默認情況下它與穀歌繼續嚐試驗證雲憑據的身份驗證。

穀歌雲憑據的身份驗證

要執行穀歌雲憑據的身份驗證,您必須使用穀歌雲CLI成功地登錄到穀歌雲。您還必須提供磚SDK為如下:

  • 主機URL磚工作區。

  • 穀歌雲服務帳戶憑證JSON或這些憑據在本地文件係統的位置。

你指導的磚SDK可以開始執行穀歌雲憑據的身份驗證,通過設置憑證config.GoogleCredentials* databricks.Config,例如:

w:=必須(NewWorkspaceClient(&配置{憑證:配置GoogleCredentials{},/ /導入"github.com/databricks/databricks-sdk-go/config”}))

磚SDK先檢查看看主機GoogleCredentials字段中設置* databricks.Config

警告

磚強烈阻礙了硬編碼的信息,比如穀歌雲服務帳戶憑據JSON* databricks.Config,因為這可以暴露敏感信息在純文本版本控製係統。磚建議您使用您在您的開發機器上設置環境變量。

如果前麵的字段是不設置,接下來的磚SDK的檢查環境變量設置如下:

  • DATABRICKS_HOST

  • GOOGLE_CREDENTIALS

如果前麵的環境變量沒有設置,磚SDK為下一步檢查磚配置概要文件命名默認的配置文件設置在你的.databrickscfg文件。這個概要文件必須包含以下字段:

  • 主機

  • google_credentials

你可以通過設置提供另一個配置文件名稱配置文件論點* databricks.Config

例子

下麵的代碼示例演示如何使用磚SDK去創建和刪除集群,運行工作,用戶賬戶列表。這些代碼示例使用磚SDK的默認數據磚身份驗證的過程。

額外的代碼示例,請參閱例子文件夾的磚SDK在GitHub庫。

創建一個集群

這段代碼示例創建一個集群的最新數據磚長期運行時支持(LTS)版本和最小的可用集群節點類型的本地磁盤。這個集群有一個工人,集群將自動終止後15分鍾的空閑時間。的CreateAndWait方法調用導致暫停,直到新集群的代碼運行在工作區。

主要進口(“背景”“fmt”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/compute”)函數主要(){常量clusterName=“my-cluster”常量autoTerminationMinutes=15常量numWorkers=1w:=必須(NewWorkspaceClient())ctx:=上下文背景()/ /獲得可用的完整列表火花版本可供選擇。sparkVersions,犯錯:=w集群SparkVersions(ctx)如果犯錯! ={恐慌(犯錯)}/ /選擇最新的長期支持(LTS)版本。latestLTS,犯錯:=sparkVersions選擇(計算SparkVersionRequest{最新的:真正的,LongTermSupport:真正的,})如果犯錯! ={恐慌(犯錯)}/ /得到可用集群節點的列表類型可供選擇。nodetype,犯錯:=w集群ListNodeTypes(ctx)如果犯錯! ={恐慌(犯錯)}/ /選擇最小的可用的集群節點類型。smallestWithLocalDisk,犯錯:=nodetype最小的(集群NodeTypeRequest{LocalDisk:真正的,})如果犯錯! ={恐慌(犯錯)}fmtPrintln(“現在試圖創建集群,請稍等……”)runningCluster,犯錯:=w集群CreateAndWait(ctx,計算CreateCluster{ClusterName:clusterName,SparkVersion:latestLTS,NodeTypeId:smallestWithLocalDisk,AutoterminationMinutes:autoTerminationMinutes,NumWorkers:numWorkers,})如果犯錯! ={恐慌(犯錯)}開關runningCluster狀態{情況下計算國營:fmtPrintf(“集群現在可以在% s #設置/集群/ % s /配置\ n”,w配置主機,runningClusterClusterId,)默認的:fmtPrintf(“集群沒有運行或未能創造。% s”,runningClusterStateMessage)}/ /輸出:/ // /現在試圖創建集群中,請稍等…/ /集群現在可以在< workspace-host > #設置/ / < cluster-id > /配置的集群}

永久刪除一個集群

這段代碼示例永久刪除集群與集群ID指定的工作區。

主要進口(“背景”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/clusters”)函數主要(){/ /替換為您的集群的ID。常量clusterId=“1234 - 567890 ab123cd4”w:=必須(NewWorkspaceClient())ctx:=上下文背景()犯錯:=w集群PermanentDelete(ctx,計算PermanentDeleteCluster{ClusterId:clusterId,})如果犯錯! ={恐慌(犯錯)}}

運行工作

這個代碼示例創建了一個磚工作指定集群上運行指定的筆記本。在代碼運行時,就現有的筆記本的路徑,現有集群ID,和相關的工作設置從用戶終端。的RunNowAndWait方法調用導致暫停,直到新工作已經完成的代碼運行在工作區中。

主要進口(“bufio”“背景”“fmt”“操作係統”“弦”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/jobs”)函數主要(){w:=必須(NewWorkspaceClient())ctx:=上下文背景()nt:=工作NotebookTask{NotebookPath:askFor(”筆記本運行的工作區路徑:“),}jobToRun,犯錯:=w工作創建(ctx,工作CreateJob{的名字:askFor(一些工作的短名稱:“),任務:[]工作JobTaskSettings{{描述:askFor(一些工作的簡短描述:“),TaskKey:askFor(“一些關鍵的申請工作的任務:“),ExistingClusterId:askFor(“ID在工作區中現有的集群上運行的工作:“),NotebookTask:&nt,},},})如果犯錯! ={恐慌(犯錯)}fmtPrintf(“現在試圖運行工作/ % d % s / #工作,請耐心等待…\ n”,w配置主機,jobToRunJobId,)runningJob,犯錯:=w工作RunNowAndWait(ctx,工作RunNow{JobId:jobToRunJobId,})如果犯錯! ={恐慌(犯錯)}fmtPrintf(“查看工作運行結果在% s / #工作/ % d /運行/ % d \ n”,w配置主機,runningJobJobId,runningJobRunId,)/ /輸出:/ // /現在試圖運行作業在< workspace-host > / / <作業id > #工作,請稍等…/ /查看工作運行結果在< workspace-host > / #工作/ <作業id > / / <運行id >運行}/ /設置從用戶得到工作。函數askFor(提示字符串)字符串{var年代字符串r:=bufioNewReader(操作係統Stdin){fmtFprint(操作係統Stdout,提示+”“)年代,_=rReadString(' \ n ')如果年代! =”“{打破}}返回字符串TrimSpace(年代)}

賬戶用戶列表

這個代碼示例列出磚內可用的用戶帳戶。

主要進口(“背景”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/iam”)函數主要(){一個:=必須(NewAccountClient())所有,犯錯:=一個用戶ListAll(上下文背景(),ListAccountUsersRequest{})如果犯錯! ={恐慌(犯錯)}_,u:=範圍所有{println(u用戶名)}}

額外的資源

有關更多信息,請參見: