磚SDK的去
在本文中,您將了解如何在磚自動化業務賬戶、工作區和相關資源磚SDK的去。
實驗
是在一個磚SDK實驗狀態。提供反饋,問問題,和報告問題,使用問題選項卡的磚SDK在GitHub庫。
在實驗時期,磚是積極致力於穩定磚SDK的接口。生成API為所有客戶服務從磚規範文件同步平台。Beplay体育安卓版本你是高度鼓勵銷的確切的版本go.mod
文件,你想使用和閱讀更新日誌磚文檔的每個版本的變化。有些接口會比其他的要穩定得多。對於那些還沒有接口夜間測試,磚可能較小記錄不向後兼容的改變,如修複映射的正確性int
來int64
或重命名方法或某種類型的名字帶來更多的一致性。
開始使用的磚SDK
在您的開發機去了安裝,現有的代碼項目創建,磚身份驗證配置,創建一個
go.mod
文件來跟蹤你去通過運行代碼的依賴關係去國防部初始化
命令,例如:去國防部init樣本
把磚SDK的依賴包通過運行
去國防部編輯需要
命令,取代0.8.0
與最新版本的磚SDK包作為中列出更新日誌:去國防部編輯需要github.com/databricks/databricks-sdk-go@v0.8.0
你的
go.mod
文件現在應該像這樣:模塊樣本去1.18需要github。com/磚/磚- - - - - -sdk- - - - - -去半.8.0
在你的項目中,創建一個代碼文件,進口的磚SDK。下麵的例子,在一個文件命名
main.go
用下麵的內容,隻需列出所有集群在磚工作區:包主要進口(“背景”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/compute”)函數主要(){w:=磚。必須(磚。NewWorkspaceClient())所有,犯錯:=w。集群。ListAll(上下文。背景(),計算。ListClustersRequest{})如果犯錯! =零{恐慌(犯錯)}為_,c:=範圍所有{println(c。ClusterName)}}
添加任何失蹤模塊依賴關係通過運行
去國防部整潔
命令:去國防部整潔
請注意
如果你得到這個錯誤
走:警告:“所有”匹配沒有包
,你忘了添加一個代碼文件,進口磚SDK。抓住所有的副本包支持構建和測試所需的包
主要
模塊,通過運行去國防部供應商
命令:去國防部供應商
設置您的開發機磚身份驗證。
運行您的代碼文件,假設一個命名的文件
main.go
,通過運行去運行
命令:去運行main.go
請注意
不設置
* databricks.Config
作為參數前調用w:=databricks.Must (databricks.NewWorkspaceClient ())
的磚SDK的去使用其默認程序試圖執行磚身份驗證。覆蓋默認行為,明白了驗證配你的磚的磚SDK的帳戶或工作區。
驗證配你的磚的磚SDK的帳戶或工作區
磚自動化運行命令在一個磚帳戶或工作區,您必須首先驗證配你的磚的磚SDK的帳戶或在運行時工作區中。磚SDK的去嚐試驗證通過使用以下身份驗證方法默認情況下,按照以下順序,直到成功。如果磚SDK不能成功地驗證這些方法,它返回錯誤恐慌:失敗的要求:默認的身份驗證:不能配置默認的憑證
並停止運行。你可以覆蓋默認行為,如以下部分所述。
對於每一個認證方法,去尋找身份驗證憑證的磚SDK的以下位置在默認情況下,按照以下順序,直到找到一組,它可以使用。
以下部分描述每一種身份驗證方法,每個方法的位置。
令牌驗證
是默認的,磚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_USERNAME
和DATABRICKS_PASSWORD
。
為了解決這個錯誤,要麼刪除默認的
配置文件或環境變量DATABRICKS_USERNAME
和DATABRICKS_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_USERNAME
和DATABRICKS_PASSWORD
。
為了解決這個錯誤,要麼刪除默認的
配置文件或環境變量DATABRICKS_USERNAME
和DATABRICKS_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:真正的,})如果犯錯! =零{恐慌(犯錯)}fmt。Println(“現在試圖創建集群,請稍等……”)runningCluster,犯錯:=w。集群。CreateAndWait(ctx,計算。CreateCluster{ClusterName:clusterName,SparkVersion:latestLTS,NodeTypeId:smallestWithLocalDisk,AutoterminationMinutes:autoTerminationMinutes,NumWorkers:numWorkers,})如果犯錯! =零{恐慌(犯錯)}開關runningCluster。狀態{情況下計算。國營:fmt。Printf(“集群現在可以在% s #設置/集群/ % s /配置\ n”,w。配置。主機,runningCluster。ClusterId,)默認的:fmt。Printf(“集群沒有運行或未能創造。% s”,runningCluster。StateMessage)}/ /輸出:/ // /現在試圖創建集群中,請稍等…/ /集群現在可以在< 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,},},})如果犯錯! =零{恐慌(犯錯)}fmt。Printf(“現在試圖運行工作/ % d % s / #工作,請耐心等待…\ n”,w。配置。主機,jobToRun。JobId,)runningJob,犯錯:=w。工作。RunNowAndWait(ctx,工作。RunNow{JobId:jobToRun。JobId,})如果犯錯! =零{恐慌(犯錯)}fmt。Printf(“查看工作運行結果在% s / #工作/ % d /運行/ % d \ n”,w。配置。主機,runningJob。JobId,runningJob。RunId,)/ /輸出:/ // /現在試圖運行作業在< workspace-host > / / <作業id > #工作,請稍等…/ /查看工作運行結果在< workspace-host > / #工作/ <作業id > / / <運行id >運行}/ /設置從用戶得到工作。函數askFor(提示字符串)字符串{var年代字符串r:=bufio。NewReader(操作係統。Stdin)為{fmt。Fprint(操作係統。Stdout,提示+”“)年代,_=r。ReadString(' \ n ')如果年代! =”“{打破}}返回字符串。TrimSpace(年代)}
賬戶用戶列表
這個代碼示例列出磚內可用的用戶帳戶。
包主要進口(“背景”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/iam”)函數主要(){一個:=磚。必須(磚。NewAccountClient())所有,犯錯:=一個。用戶。ListAll(上下文。背景(),我。ListAccountUsersRequest{})如果犯錯! =零{恐慌(犯錯)}為_,u:=範圍所有{println(u。用戶名)}}