bicep를 사용하여 논리 앱(표준) connections.json 매개 변수화 - 3부

1714 단어 biceplogicappsazure
이전 2개의 게시물과 에서 API 연결 리소스를 생성하기 위해 bicep 스니펫을 만든 다음 이를 사용하여 논리 앱의 connections.json을 매개 변수화하는 방법을 간략하게 보여 주었습니다. 그러나 API 액세스 정책이라는 한 가지 구성을 놓쳤다는 사실을 깨달았습니다. 😨

API 액세스 정책은 API 연결에 액세스할 수 있는 개체(필자의 경우 논리 앱)를 지정합니다. 이 게시물에서는 이 추가 구성과 이두박근의 동작에 대한 관찰을 다루고 있습니다.

API 액세스 정책을 만드는 것은 간단합니다. Microsoft.Web/connections/accessPolicies 를 생성하고 이 새로운 액세스 정책에 대한 논리 앱 바인딩을 추가해야 합니다.

아래 스니펫은 액세스를 허용하려는 특정 논리 앱 리소스를 검색한 경우 API 액세스 정책 리소스를 만듭니다.

resource apiAccessPolicy 'Microsoft.Web/connections/accessPolicies@2016-06-01' = {
  name: '${logicApp.name}-${guid(resourceGroup().name)}'
  location: location
  parent: serviceBusConnApiConnection
  properties: {
    principal: {
      type: 'ActiveDirectory'
      identity: {
        tenantId: subscription().tenantId
        objectId: reference(logicApp.id, logicApp.apiVersion, 'Full').identity.principalId
      }
    }
  }
}


그리고 그게 다야. 내가 본 유일한 특이한 동작은 이 리소스의 이름입니다. Service Bus API 액세스 정책의 경우 위 코드 조각에서와 같이 Service Bus 연결 이름의 접두사를 사용하여 이름을 지정해야 합니다. 그러나 Azure Blob의 경우에는 그렇지 않습니다.

Azure blob의 경우 위의 이름 지정 구조를 사용하면 오류가 발생합니다 ~~ Expected resource name to not contain any "/" characters. Child resources with a parent resource reference (via the parent property or via nesting) must not contain a fully-qualified name.bicep(BCP170) . ~~알아보니 API 연결 이름 🙄의 접두사 없이 그냥 이름을 지정할 수 있습니다.
name: '${logicApp.name}-${guid(resourceGroup().name)}'
나는 여전히 그 이유를 이해하려고 노력하고 있지만, 글쎄요, 그것이 바로 그것입니다 😄

업데이트: 액세스 정책 😄에 대한 연결 리소스가 무엇인지 나타내는 상위 키워드를 놓친 것으로 나타났습니다. 부모가 지정되면 접두사 없이 액세스 정책의 이름을 지정할 수 있습니다.

좋은 웹페이지 즐겨찾기