Share via


設定 IoT Edge 模組和連線

重要

Azure SQL Edge 不再支援 ARM64 平台。

在此教學課程三部曲的第二部分中,若要在 Azure SQL Edge 中預測鐵礦中的雜質含量,請設定下列 IoT Edge 模組:

  • Azure SQL Edge
  • 資料產生器 IoT Edge 模組

指定容器登錄認證

您可以對裝載模組映像的容器登錄指定認證。 您可在資源群組中建立的容器登錄找到這些認證。 瀏覽至存取金鑰區段。 記下下列欄位:

  • 登錄名稱
  • 登入伺服器
  • 使用者名稱
  • 密碼

現在,請在 IoT Edge 模組中指定容器認證。

  1. 瀏覽至您在資源群組中建立的 IoT 中樞。

  2. 在 [自動裝置管理] 下的 [IoT Edge] 區段中,選取 [裝置識別碼]。 在本教學課程中,識別碼為 IronOrePredictionDevice

  3. 選取 [設定模組] 區段。

  4. 在 [容器登錄認證] 下,輸入下列值:

    欄位
    名稱 登錄名稱
    位址 登入伺服器
    使用者名稱 使用者名稱
    密碼 密碼

建置、推送及部署資料產生器模組

  1. 將專案檔複製到您的機器。

  2. 使用 Visual Studio 2019 開啟 IronOre_Silica_Predict.sln

  3. 更新 deployment.template.json 中的容器登錄詳細資料

    "registryCredentials": {
         "RegistryName": {
             "username": "",
             "password": "",
             "address": ""
         }
    }
    
  4. 更新 modules.json 檔案以指定目標容器登錄 (或模組的存放庫)

    "image": {
         "repository":"samplerepo.azurecr.io/ironoresilicapercent",
         "tag":
    }
    
  5. 在偵錯或發行模式中執行專案,以確保專案執行時不會發生任何問題

  6. 以滑鼠右鍵按一下專案名稱然後選取 [建置和推送 IoT Edge 模組],將專案推送至您的容器登錄。

  7. 將資料產生器模組作為 IoT Edge 模組部署到您的 Edge 裝置。

部署 Azure SQL Edge 模組

  1. 依序選取 [+ 新增] 和 [Marketplace 模組],以部署 Azure SQL Edge 模組。

  2. 在 [IoT Edge 模組 Marketplace] 窗格上,搜尋 Azure SQL Edge,然後挑選 [Azure SQL Edge 開發人員]

  3. 選取 [IoT Edge 模組] 底下新增的 [Azure SQL Edge] 模組,以設定 Azure SQL Edge 模組。 如需設定選項的詳細資訊,請參閱部署 Azure SQL Edge

  4. MSSQL_PACKAGE 環境變數新增至 Azure SQL Edge 模組部署,並指定資料庫 dacpac 檔案的 SAS URL (您在本教學課程第一部份的步驟 8 中建立了這個檔案)。

  5. 選取 [更新]

  6. 在 [在裝置上設定模組] 頁面上,選取 [下一步: 路由]>

  7. 在 [在裝置上設定模組] 頁面上的 [路由] 窗格中,指定要供模組與 IoT Edge 中樞通訊的路由,如下所述。 請務必更新下列路由定義中的模組名稱。

    FROM /messages/modules/<your_data_generator_module>/outputs/IronOreMeasures
    INTO BrokeredEndpoint("/modules/<your_azure_sql_edge_module>/inputs/IronOreMeasures")
    

    例如:

    FROM /messages/modules/ASEDataGenerator/outputs/IronOreMeasures
    INTO BrokeredEndpoint("/modules/AzureSQLEdge/inputs/IronOreMeasures")
    
  8. 在 [在裝置上設定模組] 頁面上,選取 [下一步: 檢閱並建立]>

  9. 在 [在裝置上設定模組] 頁面上,選取 [建立]

在 Azure SQL Edge 中建立並啟動 T-SQL 串流作業。

  1. 開啟 Azure Data Studio。

  2. 歡迎使用索引標籤中,使用下列詳細資料開始新的連線:

    欄位
    連線類型 Microsoft SQL Server
    伺服器 在此示範中建立的 VM 中提到的公用 IP 位址
    使用者名稱 sa
    密碼 建立 Azure SQL Edge 執行個體時所使用的強式密碼
    Database 預設
    伺服器群組 預設
    名稱 (選擇性) 提供選用的名稱
  3. 選取 Connect

  4. 在 [檔案] 功能表索引標籤中開啟新的筆記本,或使用鍵盤快速鍵 Ctrl + N

  5. 在新的 [查詢] 視窗中,執行下列指令碼來建立 T-SQL 串流作業。 執行指令碼之前,請務必變更下列變數:

    • @SQL_SA_Password:部署 Azure SQL Edge 模組時所指定的 MSSQL_SA_PASSWORD 值。
    USE IronOreSilicaPrediction;
    GO
    
    DECLARE @SQL_SA_Password VARCHAR(200) = '<SQL_SA_Password>';
    DECLARE @query VARCHAR(MAX);
    
    /* Create objects required for streaming */
    
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MyStr0ng3stP@ssw0rd';
    
    IF NOT EXISTS (
            SELECT name
            FROM sys.external_file_formats
            WHERE name = 'JSONFormat'
            )
    BEGIN
        CREATE EXTERNAL FILE FORMAT [JSONFormat]
            WITH (FORMAT_TYPE = JSON)
    END
    
    IF NOT EXISTS (
            SELECT name
            FROM sys.external_data_sources
            WHERE name = 'EdgeHub'
            )
    BEGIN
        CREATE EXTERNAL DATA SOURCE [EdgeHub]
            WITH (LOCATION = N'edgehub://')
    END
    
    IF NOT EXISTS (
            SELECT name
            FROM sys.external_streams
            WHERE name = 'IronOreInput'
            )
    BEGIN
        CREATE EXTERNAL STREAM IronOreInput
            WITH (
                    DATA_SOURCE = EdgeHub,
                    FILE_FORMAT = JSONFormat,
                    LOCATION = N'IronOreMeasures'
                    )
    END
    
    IF NOT EXISTS (
            SELECT name
            FROM sys.database_scoped_credentials
            WHERE name = 'SQLCredential'
            )
    BEGIN
        SET @query = 'CREATE DATABASE SCOPED CREDENTIAL SQLCredential
                     WITH IDENTITY = ''sa'', SECRET = ''' + @SQL_SA_Password + ''''
    
        EXECUTE (@query)
    END
    
    IF NOT EXISTS (
            SELECT name
            FROM sys.external_data_sources
            WHERE name = 'LocalSQLOutput'
            )
    BEGIN
        CREATE EXTERNAL DATA SOURCE LocalSQLOutput
            WITH (
                    LOCATION = 'sqlserver://tcp:.,1433',
                    CREDENTIAL = SQLCredential
                    )
    END
    
    IF NOT EXISTS (
            SELECT name
            FROM sys.external_streams
            WHERE name = 'IronOreOutput'
            )
    BEGIN
        CREATE EXTERNAL STREAM IronOreOutput
            WITH (
                    DATA_SOURCE = LocalSQLOutput,
                    LOCATION = N'IronOreSilicaPrediction.dbo.IronOreMeasurements'
                    )
    END
    
    EXEC sys.sp_create_streaming_job @name = N'IronOreData',
        @statement = N'Select * INTO IronOreOutput from IronOreInput';
    
    EXEC sys.sp_start_streaming_job @name = N'IronOreData';
    
  6. 使用下列查詢來確認資料產生模組中的資料正在串流到資料庫。

    SELECT TOP 10 *
    FROM dbo.IronOreMeasurements
    ORDER BY timestamp DESC;
    

在本教學課程中,我們已部署資料產生器模組和 SQL Edge 模組。 然後,我們建立了串流作業,以將資料產生模組所產生的資料串流至 SQL。

下一步