Azure Synapse Analytics(작업공간): 배포 및 디버깅 - 섹션 2
19019 단어 cloudazuresynapseanalyticsapiazure
인용문:
에서 우리는 ARM 템플릿의 기본 구조와 이해,synapse analytics 작업 영역의 매개 변수를 이해했다.이 글은 API를 통해synapse analytics 작업 영역을 보호하는 방법을 볼 수 있습니다.
다양한 유형의 API:
Azure Synapse 작업공간 관리는 두 가지 다른 것을 사용할 수 있습니다REST APIs
Azure Synapse 작업공간 관리는 두 가지 다른 것을 사용할 수 있습니다REST APIs
관리 API:
{api-version}
는 2019-06-01-미리보기"https://management.core.windows.net"
또는 "https://management.azure.com"
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}
데이터 평면 API:
{api-version}
는 2019-11-01-미리보기 또는 2020-02-01-미리보기"https://dev.azuresynapse.net"
https://<workspacename>.dev.azuresynapse.net/
현재 데이터 평면 API(미리보기)에 사용할 수 있는 문서가 없습니다.단, Github docs 에서 정보를 얻을 수 있습니다.사용 가능한synapse 작업공간 나열 - 관리 API
자원 그룹의synapse 작업 영역을 열거하기 위해 관리 API를 호출하는 방법을 보여 줍니다.
참고: 이 API는 azure 문서에서 직접 시도할 수도 있습니다.다음Try It
옵션 사용
그러나 상기 방법은 user impersonation
대신 (SPN 사용) 을 사용하여 적재 영패를 잡습니다.클라이언트 자격 증명 방법을 사용하여 이 API를 호출하는 방법을 보여 줍니다.
적재 영패 획득 중
우리는 JWT 영패를 얻기 위해 SPN(client\uid/client\usecret)의 client credentials
방식을 사용할 것이다.
다음은 권한 수여 API를 호출하고 영패를 불러오는 간단한curl 명령입니다.
참고 SPN이 RBAC 역할에 적합한지 확인합니다.다음 예제에서는 SPN에 리소스 그룹에 대한 참여자 액세스 권한이 있습니다.
curl --request POST \
--url https://login.microsoftonline.com/<tenant-id>/oauth2/token \
--header 'accept: application/json' \
--header 'content-type: multipart/form-data;' \
--form client_id=a35373d8-c772-4ea0-9f4b-73111376354f \
--form 'client_secret=xxxxxxx~~2Z6Es' \
--form grant_type=client_credentials \
--form resource=https://management.azure.com/ \
--form scope=Microsoft.Synapse/workspaces/read
답변:
{
"token_type": "Bearer",
"expires_in": "3599",
"ext_expires_in": "3599",
"expires_on": "1599917407",
"not_before": "1599913507",
"resource": "https://management.azure.com/",
"access_token": "eyJ....."
}
불면증 캡처:
Synapse 관리 작업공간 목록 API 호출
이제 우리는 실제 API를 호출할 수 있는 영패를 얻었다
curl --request GET \
--url 'https://management.azure.com/subscriptions/<sub-id>/resourceGroups/azuresynapses/providers/Microsoft.Synapse/workspaces/?api-version=2019-06-01-preview' \
--header 'accept: application/json' \
--header 'authorization: Bearer eyJ0......................' \
--header 'content-type: application/json'
답변:
{
"value": [
{
"id": "/subscriptions/<sub-id>/resourceGroups/azuresynapses/providers/Microsoft.Synapse/workspaces/azsynapse002",
"location": "eastus",
"name": "azsynapse002",
"type": "Microsoft.Synapse/workspaces",
"identity": {
"type": "SystemAssigned",
"principalId": "712cc76e-7dd9-4978-a259-6c2be5057d2f",
"tenantId": "<tenant-id>"
},
"tags": {},
"properties": {
"connectivityEndpoints": {
"web": "https://web.azuresynapse.net?workspace=%2fsubscriptions%2f<sub-id>%2fresourceGroups%2fazuresynapses%2fproviders%2fMicrosoft.Synapse%2fworkspaces%2fazsynapse002",
"sql": "azsynapse002.sql.azuresynapse.net",
"dev": "https://azsynapse002.dev.azuresynapse.net",
"sqlOnDemand": "azsynapse002-ondemand.sql.azuresynapse.net"
},
"managedResourceGroupName": "azuresynapses",
"privateEndpointConnections": [],
"workspaceUID": "0fdd8032-3277-4d1b-b4c3-b069f48bd169",
"extraProperties": {
"IsScopeEnabled": false
},
"provisioningState": "Succeeded"
}
}
]
}
불면증 캡처:
Synapse 작업공간 역할
데이터 평면 API로 이동하기 전에synapse 작업 영역의 역할이 무엇인지 보여드릴게요.🤔. 데이터 평면 API를 사용하여 작업공간 역할을 관리하기 때문입니다.
실제로 3가지 다른 캐릭터는 Synapse만의 캐릭터입니다. Azure 캐릭터를 바탕으로 하는 것이 아니라
curl --request POST \
--url https://login.microsoftonline.com/<tenant-id>/oauth2/token \
--header 'accept: application/json' \
--header 'content-type: multipart/form-data;' \
--form client_id=a35373d8-c772-4ea0-9f4b-73111376354f \
--form 'client_secret=xxxxxxx~~2Z6Es' \
--form grant_type=client_credentials \
--form resource=https://management.azure.com/ \
--form scope=Microsoft.Synapse/workspaces/read
{
"token_type": "Bearer",
"expires_in": "3599",
"ext_expires_in": "3599",
"expires_on": "1599917407",
"not_before": "1599913507",
"resource": "https://management.azure.com/",
"access_token": "eyJ....."
}
curl --request GET \
--url 'https://management.azure.com/subscriptions/<sub-id>/resourceGroups/azuresynapses/providers/Microsoft.Synapse/workspaces/?api-version=2019-06-01-preview' \
--header 'accept: application/json' \
--header 'authorization: Bearer eyJ0......................' \
--header 'content-type: application/json'
{
"value": [
{
"id": "/subscriptions/<sub-id>/resourceGroups/azuresynapses/providers/Microsoft.Synapse/workspaces/azsynapse002",
"location": "eastus",
"name": "azsynapse002",
"type": "Microsoft.Synapse/workspaces",
"identity": {
"type": "SystemAssigned",
"principalId": "712cc76e-7dd9-4978-a259-6c2be5057d2f",
"tenantId": "<tenant-id>"
},
"tags": {},
"properties": {
"connectivityEndpoints": {
"web": "https://web.azuresynapse.net?workspace=%2fsubscriptions%2f<sub-id>%2fresourceGroups%2fazuresynapses%2fproviders%2fMicrosoft.Synapse%2fworkspaces%2fazsynapse002",
"sql": "azsynapse002.sql.azuresynapse.net",
"dev": "https://azsynapse002.dev.azuresynapse.net",
"sqlOnDemand": "azsynapse002-ondemand.sql.azuresynapse.net"
},
"managedResourceGroupName": "azuresynapses",
"privateEndpointConnections": [],
"workspaceUID": "0fdd8032-3277-4d1b-b4c3-b069f48bd169",
"extraProperties": {
"IsScopeEnabled": false
},
"provisioningState": "Succeeded"
}
}
]
}
데이터 평면 API로 이동하기 전에synapse 작업 영역의 역할이 무엇인지 보여드릴게요.🤔. 데이터 평면 API를 사용하여 작업공간 역할을 관리하기 때문입니다.
실제로 3가지 다른 캐릭터는 Synapse만의 캐릭터입니다. Azure 캐릭터를 바탕으로 하는 것이 아니라
작업공간 역할 액세스 관리 - 데이터 평면 API:
이제 우리는synapse 작업 영역의 서로 다른 역할을 이해했다.이러한 역할 액세스를 데이터 평면 API를 통해 관리하는 방법을 살펴보겠습니다.
적재 영패 획득 중
여느 때와 마찬가지로 우리는 SPN 인증을 사용하여 승재 영패를 얻을 것이다.여기에는 몇 가지 다른 점이 있다
client_credentials
curl --request POST \
--url https://login.microsoftonline.com/<tenant-id>/oauth2/token \
--header 'accept: application/json' \
--header 'content-type: multipart/form-data;' \
--form client_id=a35373d8-c772-4ea0-9f4b-73111376354f \
--form 'client_secret=xxxxxxx~~2Z6Es' \
--form grant_type=client_credentials \
--form resource=https://dev.azuresynapse.net
답변:{
"token_type": "Bearer",
"expires_in": "3599",
"ext_expires_in": "3599",
"expires_on": "1599917407",
"not_before": "1599913507",
"resource": "https://dev.azuresynapse.net",
"access_token": "eyJ....."
}
불면증 캡처:Synapse 데이터 평면 API를 호출하여 작업공간 역할에 사용자 추가
여기서 우리는 사용자 하나를 세 캐릭터 중 하나에 추가할 것이다.이를 위해서는 2개의 작업이 필요합니다
역할 ID 가져오기
캐릭터 id를 얻기 위해서는 아래 단점을 사용해야 합니다
https://<workspacename>.dev.azuresynapse.net/rbac/roles?api-version=2020-02-01-preview
말아달래요.curl --request GET \
--url 'https://azsynapse002.dev.azuresynapse.net/rbac/roles?api-version=2020-02-01-preview' \
--header 'accept: application/json' \
--header 'authorization: Bearer eyJ0' \
--header 'content-type: application/json'
답변:{
"value": [
{
"id": "6e4bf58a-b8e1-4cc3-bbf9-d73143322b78",
"name": "Workspace Admin",
"isBuiltIn": true
},
{
"id": "c3a6d2f1-a26f-4810-9b0f-591308d5cbf1",
"name": "Apache Spark Admin",
"isBuiltIn": true
},
{
"id": "7af0c69a-a548-47d6-aea3-d00e69bd83aa",
"name": "Sql Admin",
"isBuiltIn": true
}
]
}
불면증 캡처:역할 ID에 사용자 추가
현재 우리는 모든 캐릭터의 캐릭터 id를 얻었다. (이 캐릭터 id는 전 세계의synapse 작업 구역에서 모두 같다.)다음 노드를 사용하여 사용자를 추가합니다.
https://<workspacename>.dev.azuresynapse.net/rbac/roleAssignments?api-version=2020-02-01-preview
#Json body Param:
{
"roleId": "<workspace role id>",
"principalId": "<objectid of the user/group>"
}
볼륨:curl --request POST \
--url 'https://azsynapse002.dev.azuresynapse.net/rbac/roleAssignments?api-version=2020-02-01-preview' \
--header 'authorization: Bearer eyJ..............' \
--header 'content-type: application/json' \
--data '{
"roleId": "6e4bf58a-b8e1-4cc3-bbf9-d73143322b78",
"principalId": "fb1e7804-9542-4412-be66-e143a10e3b1a"
}'
답변:{
"id": "6e4bf58a-b8e1-4cc3-bbf9-d73143322b78-fb1e7804-9542-4412-be66-e143a10e3b1a",
"roleId": "6e4bf58a-b8e1-4cc3-bbf9-d73143322b78",
"principalId": "fb1e7804-9542-4412-be66-e143a10e3b1a"
}
불면증 캡처:결론:
이 글에서 우리는 순수하게 API를 사용하여synapse 작업 구역을 관리하는 멋진 방법을 보았다.이것은 자동화를 위해 넓은 공간을 열었다.이 기능들은 대부분 미리 보기 중이라는 것을 기억하세요.따라서 이러한 양수인은 존재하지 않습니다. 즉, 모든 API 단점/조작은 제가 본고에서 설명한 것과 같습니다.업데이트가 필요하다면, 나는 이 글을 업데이트하기 위해 가장 좋은 상태를 유지할 것이다.여기서 나는 데이터 평면과 유사한synapse 역할 분배 조작을 설명했다.실제로 데이터 평면 API는 이것에 그치지 않는다.본문github repo을 읽고 데이터 평면 API 작업의 모든 기능을 이해합니다.
Reference
이 문제에 관하여(Azure Synapse Analytics(작업공간): 배포 및 디버깅 - 섹션 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/jayendran/azure-synapse-analytics-workspaces-deploy-and-debug-part-2-l5c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Azure Synapse Analytics(작업공간): 배포 및 디버깅 - 섹션 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jayendran/azure-synapse-analytics-workspaces-deploy-and-debug-part-2-l5c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)