중요합니다
이 페이지에는 미리 보기 상태인 Kubernetes 배포 매니페스트를 사용하여 Azure IoT 작업 구성 요소를 관리하는 방법에 대한 지침이 포함되어 있습니다. 이 기능은 여러 제한 사항을 가지고 있으므로 프로덕션 워크로드에는 사용하면 안 됩니다.
베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.
Azure IoT 작업에서 Azure Data Explorer로 데이터를 보내려면 데이터 흐름 엔드포인트를 구성할 수 있습니다. 이 구성을 사용하면 대상 엔드포인트, 인증 방법, 테이블 및 기타 설정을 지정할 수 있습니다.
필수 구성 요소
-
Azure IoT 작업의 인스턴스
-
Azure Data Explorer 클러스터.
빠른 시작: Azure Data Explorer 클러스터 및 데이터베이스 만들기의 전체 클러스터 단계를 따릅니다.
무료 클러스터 옵션은 이 시나리오에서는 작동하지 않습니다.
Azure Data Explorer 데이터베이스 만들기
Azure Portal에서 Azure Data Explorer 전체 클러스터에 데이터베이스를 만듭니다.
데이터베이스에 데이터를 위한 테이블을 만듭니다. Azure Portal을 사용하여 열을 수동으로 만들거나, 쿼리 탭에서 KQL을 사용할 수 있습니다. 예를 들어, 샘플 온도 조절기 데이터에 대한 테이블을 만들려면 다음 명령을 실행합니다.
.create table thermostat (
externalAssetId: string,
assetName: string,
CurrentTemperature: real,
Pressure: real,
MqttTopic: string,
Timestamp: datetime
)
테이블 및 데이터베이스에서 스트리밍 수집을 사용하도록 설정합니다. 쿼리 탭에서 다음 명령을 실행하여 데이터베이스 이름으로 <DATABASE_NAME>
을(를) 대체합니다.
.alter database ['<DATABASE_NAME>'] policy streamingingestion enable
또는 전체 클러스터에서 스트리밍 수집을 사용하도록 설정합니다.
기존 클러스터에서 스트리밍 수집 사용을 참조하세요.
관리 ID에 권한 할당
Azure Data Explorer에 대한 데이터 흐름 엔드포인트를 구성하려면 사용자가 할당한 관리 ID나 시스템이 할당한 관리 ID를 사용하는 것이 좋습니다. 이러한 방식은 안전하며 자격 증명을 수동으로 관리할 필요성을 없애줍니다.
Azure Data Explorer 데이터베이스를 만든 후에는 데이터베이스에 대한 쓰기 권한을 부여하는 역할을 Azure IoT 작업 관리 ID에 할당해야 합니다.
시스템이 할당한 관리 ID를 사용하는 경우 Azure Portal에서 Azure IoT 작업 인스턴스로 이동하여 개요를 선택합니다.
Azure IoT 작업 Arc 확장 뒤에 나열된 확장 이름을 복사합니다. 예를 들어, azure-iot-operations-xxxx7입니다. 시스템이 할당한 관리 ID는 Azure IoT 작업 Arc 확장과 동일한 이름을 사용하여 찾을 수 있습니다.
- Azure Data Explorer 데이터베이스(클러스터 아님)에서 개요 아래에서 권한>추가를 선택한 다음 역할로 수집기를 선택합니다. 이를 통해 관리 ID에 Azure Data Explorer 데이터베이스에 쓰는 데 필요한 권한이 부여됩니다. 자세한 내용은 역할 기반 액세스 제어를 참조하세요.
-
클라우드 연결을 위해 설정된 사용자 할당 관리 ID 또는 시스템이 할당한 관리 ID의 이름을 검색합니다. 예를 들어, azure-iot-operations-xxxx7입니다.
- 그런 다음, 선택을 선택합니다.
Azure Data Explorer에 대한 데이터 흐름 엔드포인트 만들기
운영 환경에서 데이터 흐름 엔드포인트 탭을 선택합니다.
새 데이터 흐름 엔드포인트 만들기에서 Azure Data Explorer>새로 만들기를 선택합니다.
엔드포인트에 대해 다음 설정을 입력합니다.
설정 |
설명 |
이름 |
데이터 흐름 엔드포인트의 이름입니다. |
호스트 |
<cluster>.<region>.kusto.windows.net 형식의 Azure Data Explorer 엔드포인트의 호스트 이름입니다. |
인증 방법 |
인증에 사용되는 방법입니다.
시스템이 할당한 관리 ID 또는 사용자가 할당한 관리 ID를 선택합니다. |
클라이언트 ID |
사용자가 할당한 관리 ID의 클라이언트 ID
사용자가 할당한 관리 ID를 사용하는 경우 필요합니다. |
테넌트 ID |
사용자가 할당한 관리 ID의 테넌트 ID.
사용자가 할당한 관리 ID를 사용하는 경우 필요합니다. |
적용을 선택하여 엔드포인트를 프로비전합니다.
만들기 또는 바꾸기
az iot ops 데이터 흐름 엔드포인트 create adls 명령을 사용하여 Azure Data Explorer 데이터 흐름 엔드포인트를 만들거나 바꿉니다.
az iot ops dataflow endpoint create adx --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --host <ClusterName> --database <DatabaseName>
--host
매개 변수는 Azure Data Explorer 클러스터의 호스트 이름입니다<cluster>.<region>.kusto.windows.net
.
--database
매개 변수는 Azure Data Explorer 데이터베이스의 이름입니다.
다음은 adx-endpoint라는 Azure Data Explorer 데이터 흐름 엔드포인트를 만들거나 바꾸는 예제 명령입니다.
az iot ops dataflow endpoint create adx --resource-group myResourceGroup --instance myAioInstance --name adx-endpoint --host myadxcluster.eastus.kusto.windows.net --database mydatabase
만들기 또는 변경
az iot ops 데이터 흐름 엔드포인트 적용 명령을 사용하여 Azure Data Explorer 데이터 흐름 엔드포인트를 만들거나 변경합니다.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
--config-file
매개 변수는 리소스 속성을 포함하는 JSON 구성 파일의 경로 및 파일 이름입니다.
이 예제에서는 사용자의 홈 디렉터리에 저장된 다음 콘텐츠로 명명 adx-endpoint.json
된 구성 파일을 가정합니다.
{
"endpointType": "DataExplorer",
"dataExplorerSettings": {
"authentication": {
"method": "SystemAssignedManagedIdentity",
"systemAssignedManagedIdentitySettings": {}
},
"batching": {
"latencySeconds": 60,
"maxMessages": 100000
},
"host": "https://<cluster>.<region>.kusto.windows.net",
"database": "<DatabaseName>"
}
}
다음은 adx-endpoint라는 새 Azure Data Explorer 데이터 흐름 엔드포인트를 만드는 예제 명령입니다.
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name adx-endpoint --config-file ~/adx-endpoint.json
다음 콘텐츠로 Bicep .bicep
파일을 만듭니다.
param aioInstanceName string = '<AIO_INSTANCE_NAME>'
param customLocationName string = '<CUSTOM_LOCATION_NAME>'
param endpointName string = '<ENDPOINT_NAME>'
param hostName string = 'https://<cluster>.<region>.kusto.windows.net'
param databaseName string = '<DATABASE_NAME>'
resource aioInstance 'Microsoft.IoTOperations/instances@2024-11-01' existing = {
name: aioInstanceName
}
resource customLocation 'Microsoft.ExtendedLocation/customLocations@2021-08-31-preview' existing = {
name: customLocationName
}
resource adxEndpoint 'Microsoft.IoTOperations/instances/dataflowEndpoints@2024-11-01' = {
parent: aioInstance
name: endpointName
extendedLocation: {
name: customLocation.id
type: 'CustomLocation'
}
properties: {
endpointType: 'DataExplorer'
dataExplorerSettings: {
host: hostName
database: databaseName
authentication: {
// See available authentication methods section for method types
// method: <METHOD_TYPE>
}
}
}
}
그런 다음 Azure CLI를 통해 배포합니다.
az deployment group create --resource-group <RESOURCE_GROUP> --template-file <FILE>.bicep
다음 콘텐츠로 Kubernetes 매니페스트 .yaml
파일을 만듭니다.
apiVersion: connectivity.iotoperations.azure.com/v1
kind: DataflowEndpoint
metadata:
name: <ENDPOINT_NAME>
namespace: azure-iot-operations
spec:
endpointType: DataExplorer
dataExplorerSettings:
host: 'https://<cluster>.<region>.kusto.windows.net'
database: <DATABASE_NAME>
authentication:
# See available authentication methods section for method types
# method: <METHOD_TYPE>
그런 다음 매니페스트 파일을 Kubernetes 클러스터에 적용합니다.
kubectl apply -f <FILE>.yaml
사용 가능한 인증 방법
Azure Data Explorer 엔드포인트에는 다음과 같은 인증 방법을 사용할 수 있습니다.
시스템 할당 관리 ID
데이터 흐름 엔드포인트를 구성하기 전에 Azure Data Explorer 데이터베이스에 대한 쓰기 권한을 부여하는 역할을 Azure IoT 작업 관리 ID에 할당합니다.
- Azure Portal에서 Azure IoT 작업 인스턴스로 이동하여 개요를 선택합니다.
-
Azure IoT 작업 Arc 확장 뒤에 나열된 확장 이름을 복사합니다. 예를 들어, azure-iot-operations-xxxx7입니다.
- Azure Data Explorer 데이터베이스(클러스터 아님)로 이동하여 개요에서 권한>추가를 선택한 다음 적절한 역할을 선택합니다.
- 시스템에서 할당한 관리 ID의 이름을 검색합니다. 예를 들어, azure-iot-operations-xxxx7입니다.
-
선택을 선택합니다.
그런 다음 시스템이 할당한 관리 ID 설정으로 데이터 흐름 엔드포인트를 구성합니다.
운영 환경 데이터 흐름 엔드포인트 설정 페이지에서 기본 탭을 선택한 다음 인증 방법>시스템이 할당한 관리 ID를 선택합니다.
만들기 또는 바꾸기
az iot ops 데이터 흐름 엔드포인트 create adls 명령을 사용하여 Azure Data Explorer 데이터 흐름 엔드포인트를 만들거나 바꿉니다.
az iot ops dataflow endpoint create adx --auth-type SystemAssignedManagedIdentity --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --host <ClusterName> --database <DatabaseName>
--host
매개 변수는 Azure Data Explorer 클러스터의 호스트 이름입니다<cluster>.<region>.kusto.windows.net
.
--database
매개 변수는 Azure Data Explorer 데이터베이스의 이름입니다.
다음은 adx-endpoint라는 Azure Data Explorer 데이터 흐름 엔드포인트를 만들거나 바꾸는 예제 명령입니다.
az iot ops dataflow endpoint create adx --auth-type SystemAssignedManagedIdentity --resource-group myResourceGroup --instance myAioInstance --name adx-endpoint --host myadxcluster.eastus.kusto.windows.net --database mydatabase
만들기 또는 변경
az iot ops 데이터 흐름 엔드포인트 적용 명령을 사용하여 Azure Data Explorer 데이터 흐름 엔드포인트를 만들거나 변경합니다.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
--config-file
매개 변수는 리소스 속성을 포함하는 JSON 구성 파일의 경로 및 파일 이름입니다.
이 예제에서는 사용자의 홈 디렉터리에 저장된 다음 콘텐츠로 명명 adx-endpoint.json
된 구성 파일을 가정합니다.
{
"endpointType": "DataExplorer",
"dataExplorerSettings": {
"authentication": {
"method": "SystemAssignedManagedIdentity",
"systemAssignedManagedIdentitySettings": {}
},
"batching": {
"latencySeconds": 60,
"maxMessages": 100000
},
"host": "https://<cluster>.<region>.kusto.windows.net",
"database": "<DatabaseName>"
}
}
다음은 adx-endpoint라는 새 Azure Data Explorer 데이터 흐름 엔드포인트를 만드는 예제 명령입니다.
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name adx-endpoint --config-file ~/adx-endpoint.json
dataExplorerSettings: {
authentication: {
method: 'SystemAssignedManagedIdentity'
systemAssignedManagedIdentitySettings: {}
}
}
dataExplorerSettings:
authentication:
method: SystemAssignedManagedIdentity
systemAssignedManagedIdentitySettings: {}
시스템에서 할당한 관리 ID 대상 그룹을 재정의해야 하는 경우 audience
설정을 지정할 수 있습니다.
대부분의 경우 다른 설정을 지정할 필요가 없습니다. 이 구성은 기본 대상 그룹 https://api.kusto.windows.net
을 사용하여 관리 ID를 만듭니다.
만들기 또는 바꾸기
az iot ops dataflow endpoint create adls 명령을 사용하여 Azure Data Explorer 데이터 흐름 엔드포인트를 만들거나 시스템 할당 관리 ID로 바꿉니다.
az iot ops dataflow endpoint create adx --auth-type SystemAssignedManagedIdentity --audience https://<cluster>.<region>.kusto.windows.net --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --host <cluster>.<region>.kusto.windows.net --database <DatabaseName>
--host
매개 변수는 Azure Data Explorer 클러스터의 호스트 이름입니다<cluster>.<region>.kusto.windows.net
.
--database
매개 변수는 Azure Data Explorer 데이터베이스의 이름입니다.
--audience
매개 변수는 Azure Data Explorer에 대해 인증하기 위한 관리 ID에 대한 대상 그룹 URL입니다.
다음은 Azure Data Explorer 데이터 흐름 엔드포인트를 만들거나 바꾸는 예제 명령입니다 adx-endpoint
.
az iot ops dataflow endpoint create adx --auth-type SystemAssignedManagedIdentity --audience https://myadxcluster.eastus.kusto.windows.net --resource-group myResourceGroup --instance myAioInstance --name adx-endpoint --host myadxcluster.eastus.kusto.windows.net --database mydatabase
만들기 또는 변경
az iot ops 데이터 흐름 엔드포인트 적용 명령을 사용하여 시스템 할당 관리 ID를 사용하여 Azure Data Explorer 데이터 흐름 엔드포인트를 만들거나 변경합니다.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
--config-file
매개 변수는 리소스 속성을 포함하는 JSON 구성 파일의 경로 및 파일 이름입니다.
이 예제에서는 사용자의 홈 디렉터리에 저장된 다음 콘텐츠로 명명 adx-endpoint.json
된 구성 파일을 가정합니다.
{
"endpointType": "DataExplorer",
"dataExplorerSettings": {
"authentication": {
"method": "SystemAssignedManagedIdentity",
"systemAssignedManagedIdentitySettings": {
"audience": "https://<cluster>.<region>.kusto.windows.net"
}
},
"batching": {
"latencySeconds": 60,
"maxMessages": 100000
},
"host": "https://<cluster>.<region>.kusto.windows.net",
"database": "<DatabaseName>"
}
}
다음은 이름이 지정된 새 Azure Data Explorer 데이터 흐름 엔드포인트를 만드는 예제 명령입니다 adx-endpoint
.
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name adx-endpoint --config-file ~/adx-endpoint.json
dataExplorerSettings: {
authentication: {
method: 'SystemAssignedManagedIdentity'
systemAssignedManagedIdentitySettings: {
audience: 'https://<AUDIENCE_URL>'
}
}
}
dataExplorerSettings:
authentication:
method: SystemAssignedManagedIdentity
systemAssignedManagedIdentitySettings:
audience: https://<AUDIENCE_URL>
사용자 할당 관리 ID
사용자가 할당한 관리 ID를 인증에 사용하려면 먼저 보안 설정을 사용하도록 설정하여 Azure IoT 작업을 배포해야 합니다. 그런 다음 클라우드 연결을 위한 사용자 할당 관리 ID를 설정해야 합니다. 자세한 내용은 Azure IoT 작업 배포에서 보안 설정 사용을 참조하세요.
데이터 흐름 엔드포인트를 구성하기 전에 Azure Data Explorer 데이터베이스에 대한 쓰기 권한을 부여하는 역할을 사용자가 할당한 관리 ID에 할당합니다.
- Azure Portal에서 Azure Data Explorer 데이터베이스(클러스터 아님)로 이동한 후 개요에서 권한>추가를 선택한 다음 적절한 역할을 선택합니다.
- 사용자에게 할당된 관리 ID의 이름을 검색합니다.
-
선택을 선택합니다.
그런 다음 사용자가 할당한 관리 ID 설정으로 데이터 흐름 엔드포인트를 구성합니다.
운영 환경 데이터 흐름 엔드포인트 설정 페이지에서 기본 탭을 선택한 다음 인증 방법>사용자가 할당한 관리 ID를 선택합니다.
해당 필드에 사용자가 할당한 관리 ID 클라이언트 ID와 테넌트 ID를 입력합니다.
만들기 또는 바꾸기
az iot ops dataflow endpoint create adls 명령을 사용하여 Azure Data Explorer 데이터 흐름 엔드포인트를 만들거나 사용자 할당 관리 ID로 바꿉니다.
az iot ops dataflow endpoint create adx --auth-type UserAssignedManagedIdentity --client-id <ClientId> --tenant-id <TenantId> --scope <Scope> --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --host <cluster>.<region>.kusto.windows.net --database <DatabaseName>
--host
매개 변수는 Azure Data Explorer 클러스터의 호스트 이름입니다<cluster>.<region>.kusto.windows.net
.
--database
매개 변수는 Azure Data Explorer 데이터베이스의 이름입니다. 이 경우 매개 변수는 --auth-type
인증 방법을 UserAssignedManagedIdentity
지정합니다.
--client-id
, --tenant-id
, 및 --scope
매개 변수는 각각 사용자 할당 관리 ID 클라이언트 ID, 테넌트 ID 및 범위를 지정합니다.
다음은 Azure Data Explorer 데이터 흐름 엔드포인트를 만들거나 바꾸는 예제 명령입니다 adx-endpoint
.
az iot ops dataflow endpoint create adx --auth-type UserAssignedManagedIdentity --client-id ClientId --tenant-id TenantId --scope https://api.kusto.windows.net/.default --resource-group myResourceGroup --instance myAioInstance --name adx-endpoint --host myadxcluster.eastus.kusto.windows.net --database mydatabase
만들기 또는 변경
az iot ops 데이터 흐름 엔드포인트 적용 명령을 사용하여 사용자 할당 관리 ID를 사용하여 Azure Data Explorer 데이터 흐름 엔드포인트를 만들거나 변경합니다.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
--config-file
매개 변수는 리소스 속성을 포함하는 JSON 구성 파일의 경로 및 파일 이름입니다.
이 예제에서는 사용자의 홈 디렉터리에 저장된 다음 콘텐츠로 명명 adx-endpoint.json
된 구성 파일을 가정합니다.
{
"endpointType": "DataExplorer",
"dataExplorerSettings": {
"authentication": {
"method": "UserAssignedManagedIdentity",
"userAssignedManagedIdentitySettings": {
"clientId": "<ClientId>",
"scope": "<Scope>",
"tenantId": "<TenantId>"
}
},
"batching": {
"latencySeconds": 60,
"maxMessages": 100000
},
"host": "https://<cluster>.<region>.kusto.windows.net",
"database": "<DatabaseName>"
}
}
다음은 이름이 지정된 새 Azure Data Explorer 데이터 흐름 엔드포인트를 만드는 예제 명령입니다 adx-endpoint
.
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name adx-endpoint --config-file ~/adx-endpoint.json
dataExplorerSettings: {
authentication: {
method: 'UserAssignedManagedIdentity'
userAssignedManagedIdentitySettings: {
clientId: '<ID>'
tenantId: '<ID>'
// Optional, defaults to 'https://api.kusto.windows.net/.default'
// scope: 'https://<SCOPE_URL>'
}
}
}
dataExplorerSettings:
authentication:
method: UserAssignedManagedIdentity
userAssignedManagedIdentitySettings:
clientId: <ID>
tenantId: <ID>
# Optional, defaults to 'https://api.kusto.windows.net/.default'
# scope: https://<SCOPE_URL>
여기서 범위는 선택 사항이며 기본값은 https://api.kusto.windows.net/.default
입니다. 기본 범위를 재정의해야 하는 경우 Bicep 또는 Kubernetes를 통해 scope
설정을 지정합니다.
고급 설정
Azure Data Explorer 엔드포인트에 대해 일괄 처리 대기 시간 및 메시지 수와 같은 고급 설정을 지정할 수 있습니다.
batching
설정을 사용하여 메시지가 대상에 전송되기 전 최대 메시지 수와 최대 대기 시간을 구성합니다. 이 설정은 네트워크 대역폭을 최적화하고 대상에 대한 요청 수를 줄이려는 경우에 유용합니다.
필드 |
설명 |
필수 |
latencySeconds |
메시지를 대상으로 보내기 전에 기다리는 최대 시간(초). 기본값은 60초입니다. |
아니요 |
maxMessages |
대상으로 보낼 수 있는 최대 메시지 수. 기본값은 100000개 메시지입니다. |
아니요 |
예를 들어, 최대 메시지 수를 1000개로, 최대 대기 시간을 100초로 구성하려면 다음 설정을 사용합니다.
운영 환경에서 데이터 흐름 엔드포인트에 대한 고급 탭을 선택합니다.
az iot ops 데이터 흐름 엔드포인트 적용 명령을 사용하여 고급 설정을 사용하여 Azure Data Explorer 데이터 흐름 엔드포인트를 만들거나 변경합니다.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
--config-file
매개 변수는 리소스 속성을 포함하는 JSON 구성 파일의 경로 및 파일 이름입니다.
이 예제에서는 사용자의 홈 디렉터리에 저장된 다음 콘텐츠로 명명 adx-endpoint.json
된 구성 파일을 가정합니다.
{
"endpointType": "DataExplorer",
"dataExplorerSettings": {
"authentication": {
"method": "SystemAssignedManagedIdentity",
"systemAssignedManagedIdentitySettings": {}
},
"batching": {
"latencySeconds": 100,
"maxMessages": 1000
},
"host": "https://<cluster>.<region>.kusto.windows.net",
"database": "<DatabaseName>"
}
}
다음은 adx-endpoint라는 새 Azure Data Explorer 데이터 흐름 엔드포인트를 만드는 예제 명령입니다.
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name adx-endpoint --config-file ~/adx-endpoint.json
dataExplorerSettings: {
batching: {
latencySeconds: 100
maxMessages: 1000
}
}
dataExplorerSettings:
batching:
latencySeconds: 100
maxMessages: 1000
다음 단계
데이터 흐름에 대해 자세히 알아보려면 데이터 흐름 만들기를 참조하세요.