Microsoft Power Platform을 사용하면 REST API를 사용하여 Power Apps 캔버스 애플리케이션의 기능을 확장할 수 있습니다. 복잡한 알고리즘이나 많은 데이터 원본을 처리할 때 캔버스 앱에서 RESTful API로 논리를 이동하는 것은 Power Apps 캔버스 애플리케이션 내에서 수식을 단순하게 유지하면서 더 복잡한 기능을 서버 측으로 이동하는 데 도움이 되는 좋은 선택이 될 수 있습니다. Power Platform 사용자 지정 커넥터를 사용하면 캔버스 앱이 다른 데이터 원본처럼 REST API를 사용할 수 있습니다.
팁
이 문서에서는 REST API를 사용하여 캔버스 앱의 기능을 확장하는 방법에 대한 예제 시나리오 및 시각적 표현을 제공합니다. 이 솔루션은 다양한 시나리오 및 산업에 사용할 수 있는 일반화된 예제 시나리오 아키텍처입니다.
아키텍처 다이어그램
Workflow
- 캔버스 앱: Power Apps 캔버스 앱은 사용자 지정 커넥터를 사용하여 Azure 함수에 의해 노출되는 작업에 액세스합니다. 사용자는 Entra ID를 사용하여 애플리케이션에 인증하고 데이터에 대한 액세스는 사용자가 액세스할 수 있는 데이터로 제한됩니다.
- 사용자 지정 커넥터: 사용자 지정 커넥터는 애플리케이션이 REST API에서 사용할 수 있는 작업을 설명하며, 이 예제에서는 Azure 함수로 구현됩니다. 사용자 지정 커넥터를 사용하여 Power Apps 캔버스 애플리케이션은 다른 데이터 원본과 마찬가지로 논리를 사용할 수 있습니다.
- Microsoft Entra ID 앱: Azure 함수는 Microsoft Entra ID 앱을 사용하여 보호됩니다. 두 번째 Microsoft Entra ID 앱은 Power Apps 캔버스 앱이 Azure 함수 작업에 액세스할 수 있도록 사용자 지정 커넥터에 등록되고 구성됩니다.
- Azure 함수: Azure 함수는 Azure Portal에서 사용자 지정 커넥터를 내보내거나 수동 구성을 통해 Power Apps 캔버스 애플리케이션에 노출되는 하나 이상의 작업을 제공하는 RESTful API를 구현합니다. Azure 함수는 권한 있는 발신자만 사용할 수 있도록 Entra ID 앱 등록으로 보호됩니다.
- Azure Cosmos DB: Azure 함수는 Azure Cosmos DB 또는 Azure SQL 또는 데이터를 관리하는 데 필요한 기타 클라우드 데이터 저장소를 사용할 수 있습니다. 사실, 함수는 논리의 복잡성으로 인해 함수 접근 방식을 사용하여 Microsoft Dataverse의 데이터와 함께 작동할 수 있습니다.
구성 요소
- Power Platform 환경: 스토어 내 앱 사용자 환경을 구현하는 Power Apps와 같은 Power Platform 리소스가 포함되어 있습니다. 이러한 리소스는 Dataverse 솔루션을 사용하여 한 환경에서 다른 환경으로(예: 개발에서 테스트로) 이동됩니다.
- Power Apps: Power Apps는 솔루션의 사용자 환경을 구현하는 데 사용됩니다. 제작자는 Azure 함수 개발자가 만든 사용자 지정 커넥터를 애플리케이션 데이터 원본으로 사용하여 애플리케이션을 빌드할 수 있습니다.
- 사용자 지정 커넥터: Power Platform 사용자 지정 커넥터는 RESTful API의 작업 및 데이터 구조를 설명합니다. 이를 통해 Power Apps 캔버스 애플리케이션과 같은 리소스에서 API를 쉽게 사용할 수 있습니다. Power Apps에서 사용하면 API를 다른 데이터 원본과 마찬가지로 참조할 수 있습니다.
시나리오 세부 사항
Power Apps를 통해 조직은 사용자 지정 사용자 환경을 만들 수 있으며 REST API를 사용하여 비즈니스 논리가 중앙 집중화되고 사용자 지정 커넥터를 사용하는 애플리케이션에서 액세스됩니다. 또한 이 방법을 사용하면 Power Apps 애플리케이션이 여러 백엔드 서비스의 통합자 역할을 하여 모든 소스의 데이터 및 논리 사용자에게 단일 보기를 제공할 수 있습니다. REST API 접근 방식을 사용하면, REST API를 구현한 컴포넌트로 다른 여러 시스템과의 상호작용의 복잡성을 이동하고, 캔버스 앱의 구현을 단순화하면서 동시에 동일한 사용자 경험을 제공할 수 있습니다.
위의 예에서 스토어 내 앱은 Power Apps 캔버스 애플리케이션을 사용하여 만들어집니다. 이 응용 프로그램을 사용하면 매장 직원이 품목의 재고가 없을 때 고객에 대한 이월 주문 알림 요청을 빠르게 저장할 수 있습니다. 이 애플리케이션은 백엔드 Azure 함수 작업을 설명하는 사용자 지정 커넥터에 구성된 단일 작업 RecordBackorder를 사용합니다. 이 예제에서 Azure 함수는 REST API의 구현입니다. RESTful 서비스를 만들 수 있는 모든 기술을 사용하여 이 패턴을 구현할 수 있습니다.
이 아키텍처는 유연성을 제공하지만 RESTful 서비스와 데이터 계층을 개발하고 유지 관리하기 위해 더 많은 코드 우선 개발자 작업이 필요하다는 의미이기도 합니다. 일반적으로 캔버스 앱 수식의 복잡성이 증가함에 따라 이러한 유형의 아키텍처를 고려해야 합니다. 예를 들어 단일 보기를 빌드하기 위해 여러 데이터 원본이 필요한 경우 API 계층을 사용하면 데이터 응답이 서버 측에서 형성되고 클라이언트에 보다 효율적으로 전달될 수 있으므로 성능이 뛰어난 환경을 제공하는 데 도움이 될 수 있습니다. 이 중간 계층 레이어를 사용하면 서버 측 캐싱 계층을 추가하고 앱에 대해 더 풍부한 원격 분석을 구현할 수 있습니다.
고려 사항
이러한 고려 사항은 워크로드의 품질을 개선하는 일련의 기본 원칙인 Power Platform Well-Architected의 핵심 요소를 구현합니다. Microsoft Power Platform Well-Architected에서 자세히 알아보세요.
안정성
불필요한 복잡성을 방지하기 위한 워크로드 설계 – 사용자 지정 커넥터를 통해 Power Apps 애플리케이션에서 REST API 접근 방식을 사용하면 불필요한 복잡성을 방지하고 조직의 다른 애플리케이션에서 사용할 수 있는 논리를 중앙 집중화할 수 있습니다. 사용자 지정 커넥터를 사용하면 Power Apps Maker가 다른 데이터 원본 작업과 마찬가지로 RESTFul API의 작업을 사용할 수 있습니다.
복원력 및 가용성 테스트 – 논리를 캔버스 앱에서 REST API로 전환하면 API를 사용하는 앱과 별도로 API를 독립적으로 테스트할 수 있습니다.
상태 표시기 측정 및 게시 – 상태를 추적하려면 REST API 구성 요소에서 원격 분석을 캡처해야 합니다. 예를 들어 Azure Monitor – Application Insights 로깅을 사용하면 구성 요소를 적절하게 추적할 수 있습니다.
보안
의도적인 세분화 및 경계 생성 – 애플리케이션이 애플리케이션 수명 주기 단계를 지원하기 위해 별도의 Power Platform 환경을 사용하도록 하고 올바른 사용자만 각 단계에 액세스할 수 있도록 하면 세분화 정책을 지원할 수 있습니다. 또한 등록된 Entra ID 앱은 각 데이터 단계의 보호를 유지하고 환경 간에 혼합되지 않도록 환경 간에 분리되어야 합니다.
운영 효율성
안전한 배포 사례 채택 - 파이프라인과 같은 자동화된 배포 프로세스를 사용하여 Power Apps 애플리케이션에 대한 변경 사항의 배포를 표준화합니다. 변경 내용을 테스트한 후에만 응용 프로그램을 프로덕션으로 승격합니다.
배포 실패 완화 전략 구현 – 애플리케이션과 REST API 간의 종속성을 사용하여 구성 요소 중 하나가 업데이트된 후 오류가 발생하는 롤아웃을 완화하기 위해 테스트된 전략이 있는지 확인해야 합니다.
성능 효율성
성능 요구 사항을 충족하는 설계 – 솔루션 성능 및 데이터 볼륨 요구 사항을 평가합니다. 평가에는 데이터에 액세스하는 방법과 다른 데이터 원본을 직접 사용하는 Power Apps가 데이터 원본과 너무 번잡할 수 있는 방법에 대한 평가가 포함되어야 합니다. 이로 인해 각 데이터 저장소로 전송되는 개별 요청의 대기 시간으로 인해 성능이 저하될 수 있습니다. 예를 들어 애플리케이션에 데이터 원본의 많은 행에서 작동하는 논리가 있는 경우 모든 네트워크 트래픽을 백엔드 Azure 함수로 이동할 수 있습니다. 다른 여러 데이터 원본과의 상호 작용을 더 효과적으로 관리할 수 있도록 REST API와의 단일 상호 작용으로 줄입니다.
논리 최적화– 캔버스 앱, Azure Functions 또는 유사한 백엔드 RESTful API 구현에서 논리가 더 복잡해짐에 따라 해당 논리를 중앙 집중식 재사용 가능한 서비스로 오프로드할 수 있습니다. 사용자 지정 커넥터 기능을 사용하여 해당 RESTful API를 설명하면 캔버스 앱이 다른 데이터 원본과 마찬가지로 구성된 작업을 사용할 수 있습니다.
성능 테스트 – 기능 및 실패에 대한 테스트와 함께 성능에 대한 기준을 테스트 및 개발하고 API가 작업 완료 시간의 변경에 민감한 경우 릴리스 주기의 일부로 평가하는 것이 중요합니다.
경험 최적화
효율성을 위한 설계 – 사용자가 여러 개별 애플리케이션과 상호 작용할 필요 없이 단일 Power Apps 애플리케이션에서 여러 데이터 원본에 액세스할 수 있도록 하는 애플리케이션은 사용자를 보다 효율적으로 만들고 보다 사용자 지정된 시각적 환경을 잘 사용합니다.
기여자
Microsoft는 이 문서를 관리합니다. 이 문서를 작성한 기여자는 다음과 같습니다.
주요 작성자:
- Mehdi Slaoui Andaloussi, 수석 엔지니어링 관리자