Apache APISIX의 API를 Power Platform에 노출하기

Bobur Umurzokov

Bobur Umurzokov

February 27, 2023

Technology

Apache APISIX API Gateway는 전문 개발자들이 백엔드 서비스를 API로 게시하고, 사용량을 모니터링하며, 이러한 API를 Power Platform(Power AppsPower Automate)에 커스텀 커넥터로 노출시켜 발견 가능하게 하고, API Gateway 엔드포인트를 커스텀 앱에 통합할 수 있도록 지원합니다. 이를 통해 처음부터 코드를 작성할 필요 없이 API Gateway 엔드포인트를 커스텀 앱에 통합할 수 있습니다.

이 글에서는 Power Platform에서 오픈소스 Apache APISIX API Gateway를 위한 커스텀 커넥터를 생성하는 방법을 보여드리겠습니다. 이는 Azure API Management의 대안으로, 사용 가능한 API가 있는 기존 시스템에 추가 컴포넌트를 구축하고 시스템 인프라가 Azure가 아닌 온프레미스 또는 다른 클라우드 서비스 제공자에 호스팅된 경우에 유용합니다.

학습 목표

이 글을 통해 다음을 배우게 됩니다:

  • Power Apps와 Apache APISIX를 통합하는 이점
  • 커스텀 커넥터란 무엇인가?
  • Power Platform에서 Apache APISIX API Gateway를 위한 새로운 커스텀 커넥터 설정
  • 새로운 커스텀 커넥터를 사용하는 Canvas Mobile App 생성

Power Apps와 Apache APISIX 통합의 이점

Power Apps와 Apache APISIX를 통합하면 조직에 여러 이점을 제공합니다. Power Apps가 API Gateway를 통해 API에 접근할 수 있으며, APISIX에서 추가 설정을 구성할 수 있습니다.

몇 가지 이점은 다음과 같습니다:

  1. 향상된 보안: "고급 요청 제한"을 제공하여 백엔드 시스템에 대한 대량 요청으로 인한 예기치 않은 오류를 방지하고, 백엔드 API에 대한 속도 제한 정책, 인증 및 암호화를 설정할 수 있습니다. 이러한 설정은 커스텀 애플리케이션에 적용될 수 있습니다.

  2. 확장성: 높은 트래픽 양을 처리할 수 있으며, 수요에 따라 확장 또는 축소할 수 있습니다. 이는 Power Apps로 구축된 커스텀 애플리케이션이 비즈니스가 성장함에 따라 증가하는 트래픽 양을 처리할 수 있음을 의미합니다.

  3. 성능: 로드 밸런싱 및 캐싱과 같은 기능을 제공하여 Power Apps로 구축된 커스텀 애플리케이션의 성능을 향상시킬 수 있습니다.

커스텀 커넥터란 무엇인가?

Power Apps의 커스텀 커넥터는 앱과 외부 데이터 소스 또는 API 간의 연결을 생성할 수 있는 도구입니다. 이 경우에는 Apache APISIX입니다. 커스텀 커넥터는 사용자가 복잡한 코드를 작성하거나 복잡한 구성을 수행하지 않고도 앱 내에서 외부 시스템의 데이터와 서비스에 접근할 수 있도록 합니다.

커스텀 커넥터는 외부 시스템의 API 엔드포인트, 메서드, 인증 요구 사항 및 필요한 매개변수와 응답 형식을 정의하여 생성됩니다. 커스텀 커넥터가 생성되고 인증되면 Power Apps에서 데이터를 검색하거나, 레코드를 생성하거나, 업데이트하거나, 삭제하는 등의 작업을 수행하는 데 사용할 수 있습니다.

새로운 커스텀 커넥터 설정

Apache APISIX를 위한 커스텀 커넥터를 구성하는 예를 살펴보겠습니다.

데모 케이스에서는 ASP.NET Core WEB API로 구축된 샘플 프로젝트와 단일 GET 엔드포인트(모든 제품 목록을 검색) 및 Apache APISIX Docker 샘플 프로젝트를 활용할 것입니다. 샘플 앱을 실행하는 방법에 대한 모든 지침은 README 파일에서 찾을 수 있습니다.

필수 조건

  • 기본 API 개념에 익숙해야 합니다.
  • Route, Upstream, Plugin과 같은 APISIX 핵심 개념에 대한 기본 지식이 필요합니다.
  • APISIX를 실행하기 위해 머신에 Docker가 설치되어 있어야 합니다.
  • docker compose를 사용하여 APISIX와 제품 백엔드 API를 설치합니다.
  • API 엔드포인트, 업스트림 및 라우팅 규칙과 같은 필요한 설정을 구성합니다. 이 튜토리얼을 따라 APISIX API Gateway 설정을 할 수 있습니다. Route와 업스트림을 생성하고 APISIX가 요청을 대상 API /api/products로 전달하도록 해야 합니다.
  • 이 연습에는 _Power Apps Premium 커넥터_에 대한 액세스가 필요합니다. 무료 개발자 플랜에 가입하세요.

1단계: 커스텀 커넥터 마법사 시작

시작하려면 Power Apps 포털에 로그인하고 "Connectors" 섹션으로 이동합니다. "New custom connector" 버튼을 클릭한 후 "Create new from blank"를 선택하고 새로운 커넥터의 이름을 제공합니다.

새 커스텀 커넥터 이미지 1

2단계: 커넥터에 대한 기본 정보 제공

"General" 탭에서 커넥터에 대한 다음 정보를 입력합니다:

  • 커넥터 이름: 커넥터에 이름을 지정합니다. 예: "APISIX API Gateway".
  • 설명: 커넥터에 대한 간단한 설명을 제공합니다.
  • 스키마: 이 경우 HTTP를 사용해야 합니다. API가 HTTPS를 사용하도록 구성되지 않았기 때문입니다.
  • "Connect via on-premises data gateway" 옵션에 체크 표시를 합니다. 네트워크 내부의 머신에 온프레미스 데이터 게이트웨이를 설치해야 합니다. 커스텀 커넥터는 온프레미스 데이터 게이트웨이를 사용하지 않고는 로컬호스트를 호스트 이름으로 사용할 수 없기 때문입니다.
  • 기본 URL: Apache APISIX API Gateway의 기본 URL을 입력합니다. 예: http://localhost:9080.

새 커스텀 커넥터 이미지 2

3단계: 인증 유형 선택

다음으로 "Security" 탭으로 전환하고 커스텀 커넥터가 사용할 인증 유형에 따라 필요한 인증 정보를 제공합니다. 예: Basic, OAuth2, 또는 API Key.

4단계: API 엔드포인트 정의

"Definition" 탭에서 커스텀 커넥터에 노출할 API 엔드포인트를 정의할 수 있습니다. 예를 들어, API Gateway에서 모든 제품 목록을 검색하는 엔드포인트를 정의할 수 있습니다.

엔드포인트를 정의하려면 다음 단계를 따르세요:

  • 이름: 엔드포인트에 이름을 지정합니다. 예: "Get Product List".
  • 요약: 엔드포인트가 수행하는 작업에 대한 간단한 요약을 제공합니다.
  • 작업 ID: 엔드포인트에 대한 고유한 작업 ID를 입력합니다. 예: "GetProducts".
  • 메서드: 엔드포인트가 사용하는 HTTP 메서드를 선택합니다. 예: GET.
  • URL: 엔드포인트의 API 엔드포인트 URL을 입력합니다. 예: /api/products.
  • 요청: 엔드포인트에 필요한 요청 매개변수와 헤더를 지정합니다.
  • 응답: 엔드포인트가 반환하는 응답 스키마를 지정합니다.

새 커스텀 커넥터 이미지 3

커스텀 커넥터에 필요한 만큼 많은 엔드포인트를 정의할 수 있습니다.

5단계: 커스텀 커넥터 테스트

엔드포인트를 정의한 후 "Test" 탭을 클릭하여 커스텀 커넥터를 테스트할 수 있습니다. 여기서 요청에 대한 샘플 데이터를 입력하고 API Gateway가 반환하는 응답을 확인할 수 있습니다.

새 커스텀 커넥터 이미지 4

6단계: 커스텀 커넥터 저장

모든 엔드포인트를 정의하고 커넥터를 테스트한 후 "Create connector" 버튼을 클릭하여 변경 사항을 저장합니다.

이제 Apache APISIX API Gateway를 위한 커스텀 커넥터가 Power Apps에서 사용할 준비가 되었습니다. 다음 섹션에서 API Gateway 엔드포인트와 상호 작용하는 커스텀 앱을 구축하는 데 사용할 수 있습니다.

새 커스텀 커넥터 이미지 5

새로운 Power App 생성

이제 이전 섹션에서 생성한 커스텀 커넥터를 사용하여 APISIX API Gateway 엔드포인트에서 제품 목록을 가져오는 단일 페이지의 새로운 모바일 앱을 구축합니다.

1단계: 제품을 위한 새로운 앱 생성

시작하려면 Power Apps 포털에 로그인하고 "Create an app"을 선택하여 새로운 앱을 생성합니다. 모바일 앱을 생성하기 위해 "Phone layout" 옵션을 선택하고 앱의 이름을 제공합니다.

2단계: 데이터 소스 추가

"Data" 탭에서 Apache APISIX API Gateway 커스텀 커넥터를 데이터 소스로 추가합니다. 이렇게 하면 앱이 커스텀 커넥터에 정의된 API Gateway 엔드포인트와 상호 작용할 수 있습니다.

3단계: 사용자 인터페이스 설계

"Canvas" 탭에서 앱의 사용자 인터페이스를 설계합니다. 버튼, 레이블, 갤러리, 폼과 같은 다양한 UI 컨트롤을 추가하여 사용자 친화적이고 상호 작용 가능한 인터페이스를 생성할 수 있습니다. 이 예제에서는 제품 이름과 가격이 포함된 제품 목록을 표시합니다.

4단계: 액션 및 로직 정의

"Action" 탭에서 사용자가 UI 컨트롤과 상호 작용할 때 앱이 수행해야 하는 액션을 정의합니다. 예를 들어, API Gateway에서 모든 제품을 검색하고 갤러리에 표시하며 검색 기능을 추가하는 액션을 정의할 수 있습니다.

새 Power 앱 이미지 1

5단계: 앱 테스트

앱의 액션과 로직을 정의한 후 "Preview" 버튼을 클릭하여 앱을 테스트할 수 있습니다. 여기서 UI 컨트롤과 상호 작용하고 API Gateway에서 검색된 데이터를 확인할 수 있습니다.

6단계: 앱 게시

앱을 테스트한 후 사용자가 사용할 수 있도록 게시할 수 있습니다. iOS, Android, Windows와 같은 다양한 플랫폼에 앱을 게시할 수 있습니다.

다음 단계

이 글에서는 API를 설명하고 Apache APISIX 커스텀 커넥터를 정의하는 방법을 배웠습니다. 또한 Power Apps를 사용하여 API Gateway와 커스텀 커넥터를 사용하는 모바일 앱을 생성했습니다. 우리의 커스텀 커넥터는 Microsoft 관리 커넥터와 동일한 방식으로 사용됩니다. 이는 Logic App, Power Automate에서도 커넥터를 활용할 수 있음을 의미합니다. 따라서 Power Platform과 Apache APISIX로 얼마나 많은 것을 성취할 수 있는지 시도해 보세요.

관련 자료

추천 콘텐츠

커뮤니티

🙋 Apache APISIX 커뮤니티 가입 🐦 트위터에서 팔로우 📝 Slack에서 찾기

Tags: