다음을 통해 공유


IoT Edge 모듈 및 연결 설정

Important

Azure SQL Edge는 2025년 9월 30일에 사용 중지됩니다. 자세한 내용 및 마이그레이션 옵션은 사용 중지 알림을 참조하세요.

참고 항목

Azure SQL Edge는 더 이상 ARM64 플랫폼을 지원하지 않습니다.

Azure SQL Edge에서 철광석 불순물 예측을 위해 세 부분으로 구성된 이번 자습서 중 2부에서는 다음과 같은 IoT Edge 모듈을 설정합니다.

  • Azure SQL Edge
  • 데이터 생성기 IoT Edge 모듈

컨테이너 레지스트리 자격 증명 지정

모듈 이미지를 호스팅하는 컨테이너 레지스트리에 대한 자격 증명을 지정해야 합니다. 이러한 자격 증명은 리소스 그룹에 만들어진 컨테이너 레지스트리에서 찾을 수 있습니다. 액세스 키 섹션으로 이동합니다. 다음 필드를 확인합니다.

  • 레지스트리 이름
  • 로그인 서버
  • 사용자 이름
  • 암호

이제 IoT Edge 모듈에서 컨테이너 자격 증명을 지정합니다.

  1. 리소스 그룹에서 만든 IoT 허브로 이동합니다.

  2. 자동 디바이스 관리 아래의 IoT Edge 섹션에서 디바이스 ID를 선택합니다. 이 자습서에서는 ID가 IronOrePredictionDevice입니다.

  3. 모듈 설정 섹션을 선택합니다.

  4. 컨테이너 레지스트리 자격 증명에서 다음 값을 입력합니다.

    필드
    속성 레지스트리 이름
    주소 로그인 서버
    사용자 이름 Username
    암호 암호

데이터 생성기 모듈 빌드, 푸시 및 배포

  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. + 추가를 선택한 다음 IoT Edge 모듈을 선택하여 Azure SQL Edge 모듈을 배포합니다.

  2. Azure SQL Edge 모듈을 배포하려면 IoT Edge 모듈 추가 페이지에서 구성 옵션을 설정합니다. 구성 옵션에 대한 자세한 내용은 Azure SQL Edge 배포를 참조하세요.

  3. Azure SQL Edge 모듈 배포에 MSSQL_PACKAGE 환경 변수를 추가하고, 이 자습서의 1부의 8단계에서 만든 데이터베이스 dacpac 파일의 SAS URL을 지정합니다.

  4. 업데이트를 선택합니다.

  5. 디바이스에 모듈 설정 페이지에서 다음: 경로 >를 선택합니다.

  6. 디바이스에서 모듈 설정 페이지의 경로 창에서 아래 설명된 대로 모듈의 경로를 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")
    
  7. 디바이스에 모듈 설정 페이지에서 다음: 검토 + 만들기 >를 선택합니다.

  8. 디바이스에서 모듈 설정 페이지에서 만들기를 선택합니다.

Azure SQL Edge에서 T-SQL 스트리밍 작업을 만들고 시작합니다.

  1. Azure Data Studio를 엽니다.

  2. 시작 탭에서 다음 정보를 사용하여 새 연결을 시작합니다.

    필드
    연결 형식 Microsoft SQL Server
    서버 이 데모에 대해 생성된 VM에서 언급된 공용 IP 주소
    사용자 이름 sa
    암호 Azure SQL Edge 인스턴스를 만드는 동안 사용된 강력한 암호입니다.
    데이터베이스 기본값
    서버 그룹 기본값
    이름(선택 사항) 필요에 따라 이름을 입력합니다.
  3. 연결을 선택합니다.

  4. 파일 메뉴 탭에서 새 Notebook을 열거나 키보드 바로 가기 키 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로 스트리밍하는 스트리밍 작업을 만들었습니다.