고유하게 명명된 리소스
이 문서에서는 Microsoft Azure API 및 Microsoft Graph API의 리소스 고유 키 전략과 Microsoft Graph API의 변경 내용을 비교하여 선언적 인프라에서 Bicep 파일과 같은 코드 템플릿 파일로 사용할 수 있도록 합니다. 또한 이러한 변경 내용을 사용하여 Bicep 파일 배포 이외의 메커니즘을 통해 만든 기존 Microsoft Graph 리소스를 참조하는 방법을 설명합니다.
Important
Microsoft Graph Bicep은 현재 미리 보기로 제공됩니다. 베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.
Azure 및 Microsoft Graph 리소스 키
Microsoft Azure 및 Microsoft Graph API는 미묘하게 다른 메커니즘을 사용하여 리소스를 만듭니다. 이러한 차이는 동일한 Bicep 템플릿 파일에서 두 리소스를 모두 선언하려고 할 때 더욱 명백해집니다.
리소스를 만드는 Microsoft Azure API의 표준 패턴은 클라이언트에서 제공하는 고유 키인 HTTP PUT 메서드를 사용하는 것입니다 name
. 이 idempotent 작업은 리소스가 없는 경우 제공된 name
값으로 리소스를 만들거나, 리소스가 있는 경우 업데이트(바꾸기)합니다.
PUT /resourceCollection/{nameValue}
리소스를 만드는 Microsoft Graph API의 표준 패턴은 HTTP POST 메서드를 사용하는 것입니다. 이 메서드는 idempotent가 아니며 서비스에서 생성된 고유 ID 키인 <
POST /resourceCollection
기존 리소스에 대한 업데이트는 PUT과 달리 대체 의미 체계를 사용하지 않는 HTTP PATCH 메서드를 사용하여 수행됩니다.
Microsoft Graph 만들기 의미 체계는 대부분의 개발자에게 적합하지만 선언적 파일 템플릿에 대한 두 가지 주요 요구 사항을 충족하지는 않습니다.
- 반복성: 템플릿 파일 배포는 동일한 결과로 여러 번 실행되어야 하며, 배포 환경은 템플릿 파일에 선언된 리소스와 일치해야 합니다. POST와 같은 비정상 메서드에서는 이 반복성을 사용할 수 없습니다.
- 클라이언트에서 제공하는 키 또는 이름: 선언적 템플릿 파일을 작성하고 유지 관리하려면 리소스 이름(또는 클라이언트에서 제공하는 키)을 미리 선언해야 합니다. 대부분의 Microsoft Graph API에서는 클라이언트에서 제공하는 키를 사용할 수 없습니다.
Microsoft Graph 클라이언트 제공 키
일부 Microsoft Graph 리소스는 클라이언트에서 제공하는 키 속성을 지원하므로 멱등원 "upsert" 메커니즘이 없는 경우 리소스를 만들거나 업데이트할 수 있습니다. 클라이언트에서 제공하는 이 키 속성은 대체 키일 가능성이 높지만 기본 키인 경우도 있습니다.
PATCH /resourceCollection(clientProvidedAlternateKeyProperty='nameValue')
대체 키를 사용하여 리소스를 만들면 서비스 생성 값이 기본 키 속성에 대해 설정됩니다.
이 패턴을 따르는 리소스만 몇 가지 예외를 제외하고 Microsoft Graph Bicep 형식으로 노출됩니다.
다음 표에서는 Bicep 파일에서 지원되는 Microsoft Graph 리소스에 대한 클라이언트 제공 키 속성을 나열합니다.
Microsoft Graph 리소스 | 클라이언트에서 제공하는 키 속성 |
---|---|
애플리케이션 | uniqueName |
페더레이션 ID 자격 증명 | 이름 |
할당된 앱 역할 | 개체를 고유하게 식별하는 속성 값에서 암시됨 |
그룹 | uniqueName |
OAuth2 권한 부여 | 개체를 고유하게 식별하는 속성 값에서 암시됨 |
서비스 주체 | appId |
기존 Microsoft Graph 리소스
지원되는 클라이언트 제공 키 속성으로 Bicep 템플릿에서 기존 Microsoft Graph 리소스를 참조할 수 있습니다. HTTP POST를 통해 만든 리소스에는 이 속성이 설정되어 있지 않을 수 있으며 일회성 백필이 필요할 수 있습니다.
일단 설정되면 클라이언트에서 제공하는 키 속성을 사용하면 리소스를 Bicep 파일에서 다시 배포하도록 선언할 수 있습니다. 다시 배포하지 않고 리소스의 속성을 읽으려면 기존 키워드를 사용합니다.
Important
클라이언트에서 제공한 키 속성은 설정된 후에는 변경할 수 없습니다.