共用方式為


建立及使用受控私人端點

具有Microsoft Fabric 工作區系統管理員許可權的使用者,可以透過工作區設定,從 Fabric 入口網站建立、檢視及刪除受控私人端點。

  • 使用者也可以從工作區設定的 [網路安全性 ] 區段監視受控私人端點的狀態和核准程式。

  • 用戶可以從 Fabric Spark 工作負載使用私人端點名稱來存取數據源。

先決條件

Microsoft.Network 資源提供者必須在 Azure 訂用帳戶中註冊

建立受控私人端點

  1. 在 [網狀架構] 工作區中,流覽至工作區設定,選取 [ 網络安全性] 索引卷標,然後選取 [受控私人端點] 區段中的 [ 建立 ] 選項。

    工作區設定中 [網路安全性] 索引標籤的螢幕快照。

    [ 建立受控私人端點] 對話框隨即開啟。

    工作區設定中 [網路安全性] 索引標籤的螢幕快照。

  2. 指定私人端點的名稱,並在 Azure 資源的資源識別碼中複製。 您可以在 Azure 入口網站頁面的 [屬性] 索引標籤中找到資源識別碼。 如需詳細資訊,請參閱: 如何取得您的 Azure 資源識別碼

    備註

    不支援建立具有完整網域名稱(FQDN)的受控私人端點。

    完成後,選擇建立

  3. 布建受控私人端點時,[啟用狀態] 會變更為 [成功]。

    [網络] 索引標籤上受控私人端點布建成功指示的螢幕快照。

    此外,私人端點存取的要求也會傳送至數據源。 數據源管理員會在 Azure 入口網站資源頁面上收到其數據源的通知。 在那裡,他們會看到待處理的存取要求以及附加的要求訊息。

以 SQL Server 為例,使用者可以流覽至 Azure 入口網站,並搜尋 “SQL Server” 資源。

  1. 在 [資源] 頁面上,從導覽功能表中選取 [ 網络] ,然後選取 [ 私人存取 ] 索引標籤。

    此螢幕快照顯示 Azure 入口網站中資源 [網络] 頁面上的 [私人存取] 索引標籤。

  2. 數據源管理員應該能夠檢視作用中的私人端點連線和新的連線要求。

    顯示 [私人存取] 標籤頁上擱置要求的螢幕快照。

  3. 系統管理員可以提供商務理由來 核准拒絕

    顯示核准表單的螢幕快照。

  4. 當資料來源管理員核准或拒絕要求時,重新整理後,Fabric 工作區設定頁面中的狀態會更新。

    此螢幕快照顯示處於已核准狀態的受控私人端點。

  5. 當狀態變更為 已核准時,端點可以在筆記本或 Spark 作業定義中使用,以從 Fabric 工作區存取儲存在數據源中的數據。

在 Fabric 中使用受控私人端點

Microsoft Fabric 筆記本支援使用受控私人端點,實現與安全網路後方數據源的順暢互動,以便於數據探索和處理。 在筆記本中,使用者可以以各種檔格式快速地從其受保護的數據源讀取數據(並將數據寫回至)其 Lakehouse。

本指南提供程式碼範例,協助您開始使用自己的筆記本,以透過受控私人端點存取數據源的數據,例如 SQL DB。

先決條件

  1. 數據源的存取權。 此範例會查看 Azure SQL Server 和 Azure SQL Database。

  2. 登入 Microsoft Fabric 和 Azure 入口網站。

  3. 流覽至 Azure 入口網站中的 Azure SQL Server 資源頁面,然後選取 [ 屬性] 功能表。 複製您想要從 Microsoft Fabric 連線之 SQL Server 的資源識別碼。

  4. 使用 建立受控私人端點中列出的步驟,從 [網狀架構網路安全性設定] 頁面建立受控私人端點。

  5. 一旦 SQL Server 的數據源管理員核准新的私人端點連線要求,您應該能夠使用新建立的受控私人端點。

從筆記本連線到數據源

  1. 登入 Microsoft Fabric 入口網站

  2. 使用首頁左側的體驗切換器來切換 開發 體驗。

  3. 流覽至您想要的工作區,或視需要建立新的工作區。

  4. 若要建立筆記本,請從工作區選取 [ 新增專案 ],然後選擇 [筆記本]。

  5. 現在,在筆記本中,藉由指定 SQL 資料庫的名稱及其連接屬性,您可以透過管理的私人端點連線,讀取資料庫中的數據表,並將它們存入您在 Microsoft Fabric 中的 lakehouse。

  6. 下列 PySpark 程式代碼示範如何連線到 SQL 資料庫。

serverName = "<server_name>.database.windows.net"
database = "<database_name>"
dbPort = 1433
dbUserName = "<username>"
dbPassword = “<db password> or reference based on Keyvault>”

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("Example") \
    .config("spark.jars.packages", "com.microsoft.azure:azure-sqldb-spark:1.0.2") \
    .config("spark.sql.catalogImplementation", "com.microsoft.azure.synapse.spark") \
    .config("spark.sql.catalog.testDB", "com.microsoft.azure.synapse.spark") \
    .config("spark.sql.catalog.testDB.spark.synapse.linkedServiceName", "AzureSqlDatabase") \ .config("spark.sql.catalog.testDB.spark.synapse.linkedServiceName.connectionString", f"jdbc:sqlserver://{serverName}:{dbPort};database={database};user={dbUserName};password={dbPassword}") \ .getOrCreate()

    
jdbcURL = "jdbc:sqlserver://{0}:{1};database={2}".format(serverName,dbPort,database)
connection = {"user":dbUserName,"password":dbPassword,"driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver"}

df = spark.read.jdbc(url=jdbcURL, table = "dbo.Employee", properties=connection)
df.show()
display(df)

# Write the dataframe as a delta table in your lakehouse
df.write.mode("overwrite").format("delta").saveAsTable("Employee")

# You can also specify a custom path for the table location
# df.write.mode("overwrite").format("delta").option("path", "abfss://yourlakehouse.dfs.core.windows.net/Employee").saveAsTable("Employee")

現在已建立連線,下一個步驟是建立數據框架,以讀取 SQL Database 中的數據表。

支持的數據源

Microsoft Fabric 支援超過 26 個資料來源,使用受控私人端點進行連線。 使用者必須指定資源識別碼,您可以在 Azure 入口網站中其資料來源的 [屬性設定] 頁面中找到。 請確定已遵循資源標識符格式,如下表所示。

服務 資源 ID 格式
認知服務 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.CognitiveServices/accounts/{resource-name}
Azure Databricks /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Databricks/workspaces/{workspace-name}
適用於 MySQL 的 Azure 資料庫 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DBforMySQL/flexibleServers/{server-name}
適用於 PostgreSQL 的 Azure 資料庫 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{server-name}
Azure Cosmos DB for MongoDB /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DocumentDB/databaseAccounts/{account-name}
Azure Cosmos DB for NoSQL /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DocumentDB/databaseAccounts/{account-name}
Azure 監視器專用連結範圍 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Insights/privateLinkScopes/{scope-name}
Azure Key Vault /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{vault-name}
Azure 資料總管 (Kusto) /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Kusto/clusters/{cluster-name}
Azure Machine Learning /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.MachineLearningServices/workspaces/{workspace-name}
Microsoft Purview /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Purview/accounts/{account-name}
Azure 搜尋 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Search/searchServices/{service-name}
Azure SQL Database /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name}
Azure SQL 資料庫 (Azure SQL 受控執行個體) /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/managedInstances/{instance-name}
Azure Blob 儲存體 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}
Azure Data Lake Storage Gen2 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}
Azure 檔案儲存體 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}
Azure 佇列儲存體 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}
Azure Table Storage (Azure 表格儲存) /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}
Azure Synapse Analytics /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Synapse/workspaces/{workspace-name}
Azure Synapse Analytics (成品) /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Synapse/workspaces/{workspace-name}
Azure Functions /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/sites/{function-app-name}
Azure 事件中樞 /subscriptions/{subscription-id}/resourcegroups/{resource-group-name}/providers/Microsoft.EventHub/namespaces/{namespace-name}
Azure IoT 中樞 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Devices/IotHubs/{iothub-name}
Azure 資料管理器(ADME)適用於能源 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.OpenEnergyPlatform/energyServices/{service-name}

請注意,不支援為 Fabric 租用戶建立私人連結服務的受控私人端點。