다음을 통해 공유


Microsoft Graph Bicep 형식의 모델링 관계

Microsoft Graph API에는 다음과 같은 두 가지 고유한 관계 모델이 있습니다.

  1. 엔터티 형식 간의 관계: 이 관계 형식의 경우 API는 서로 다른 두 형식 간에 "링크"를 제공합니다. 정식 예제는 a group 및 해당 members. 구성원(기존 사용자, 서비스 주체, 디바이스 및 그룹)을 그룹에서 추가 및 제거하여 멤버 자격을 관리할 수 있습니다. 사용자 멤버가 포함된 그룹의 경우 그룹 및 사용자에게 독립적인 수명 주기가 있으므로 그룹을 삭제해도 그룹의 구성원인 사용자는 삭제 되지 않습니다.
  2. 부모-자식 관계: 이 관계 유형의 경우 자식 리소스는 부모 리소스 내에 "포함"되며 자식 리소스의 수명 주기는 부모에 연결됩니다. 예를 들어, federatedIdentityCredentialsapplication 인스턴스의 자식 컬렉션입니다. 애플리케이션이 삭제되면 애플리케이션 federatedIdentityCredentials 도 삭제됩니다.

이 문서에서는 이러한 관계 유형이 Microsoft Graph Bicep 형식에서 어떻게 노출되는지와 Microsoft Graph Bicep 확장에서 제공하는 추가 기능을 자세히 살펴봅니다.

엔터티 유형 간의 관계

비고

명시적으로 언급하지 않는 한 이 섹션에 설명된 관계 모델링 환경에는 Microsoft Graph Bicep 형식 버전 v0.2.0-preview 이상을 사용해야 합니다.

이러한 관계는 MicrosoftGraphRelationship 유형을 사용하여 모델링됩니다. 이 예제에서는 그룹 membersowners 속성에 대한 모델링을 보여 줍니다(다른 필수 그룹 속성은 간결하게 표시되지 않음). 배열 속성에는 relationships 다른 Microsoft Graph 리소스에 대한 정식 ID(기본 키 ID) 목록이 포함되어 있습니다.

resource group 'Microsoft.Graph/groups@v1.0' = {
  members: {
    relationships: [id1, id2, id3]
  }
  owners: {
    relationships: [id4, id5]
  }
}

관계 동작 제어

기본적으로 모든 관계 업데이트는 추가 의미 체계를 사용합니다. 관계가 아직 없는 경우 목록에 있는 각 ID에 대한 관계를 추가합니다. 이는 Microsoft Graph API의 기본 기본 동작을 반영합니다. 또는 바꾸기 의미 체계를 사용하여 관계 업데이트를 설정할 수 있습니다. 의미 체계를 바꾸면 서비스에 있는 모든 것이 Bicep 템플릿에 지정된 관계로 완전히 바뀝니다. 이 예제에서 그룹의 기존 멤버는 id1, id2, id3로 교체됩니다.

resource group 'Microsoft.Graph/groups@v1.0' = {
  members: {
    relationshipSemantics: 'replace'
    relationships: [id1, id2, id3]
  }
  owners: {
    relationships: [id4, id5]
  }
}

관계 동작은 extension 문에서 템플릿 수준으로 설정할 수도 있습니다.

extension graphV1 with {
  relationshipSemantics: 'replace'
}

그러면 Bicep 템플릿의 모든 관계가 의미 체계 바꾸기를 사용하도록 설정됩니다. 이 전역 동작은 각 관계 선언에서 재정의할 수 있습니다.

Microsoft Graph Bicep 확장 기능

v0.2.0-preview를 사용하여 Microsoft Graph Bicep 확장은 대체 의미 체계 논리를 오케스트레이션하여 관계에서 추가 및 제거할 멤버를 파악합니다. 또한 Microsoft Graph Bicep 확장은 일괄 처리 관계 요청을 오케스트레이션하여 읽기 및 쓰기 모두에 대한 Microsoft Graph API 요청 제한을 극복합니다.

부모-자식 관계

Bicep에서 부모-자식 관계는 템플릿 파일에서 다양한 방법으로 선언할 수 있습니다. 부모-자식 선언의 가장 일반적인 방법은 부모 리소스 아래에 자식 리소스를 중첩하는 것입니다. 중첩된 자식의 좋은 예는 연합 신원 자격 증명입니다.