REST API 기반 AWS 커넥터를 직접 구축하는 방법 | Mendix

메인 컨텐츠로 가기

REST API 기반 AWS 커넥터를 직접 구축하는 방법

REST API 테마 그래픽

Amazon Web Services(AWS)는 전 세계에서 가장 잘 알려진 클라우드 컴퓨팅 플랫폼 중 하나로, 모든 규모의 기업에 광범위한 도구와 서비스를 제공합니다. 소규모 스타트업부터 대기업까지 많은 회사가 인프라, 애플리케이션 및 데이터를 처리하기 위해 AWS에 의존합니다.

그러나 AWS를 다른 시스템과 통합하는 것은 전문 지식과 기술 능숙성을 요구하는 힘든 과정이 될 수 있습니다. Mendix 들어 온다.

개발자는 기존 커넥터를 쉽게 활용하거나 AWS 서비스를 다른 애플리케이션 및 시스템과 통합하는 새로운 커넥터를 구축할 수 있습니다. Mendix효율적인 로우코드 개발 플랫폼입니다.

“AWS는 혁신의 힘을 인식합니다. Mendix AWS 서비스의 혁신적 힘을 인식하고 있습니다."라고 전 CEO인 Tim Srock이 말했습니다. Mendix. 7년간의 성공적인 전략적 관계로 인해 Mendix 그리고 AWS, 두 회사는 다음과 같이 결정했습니다. 확장된 시장 진출 관계.

AWS와의 파트너십에 대해 자세히 알아보려면 보도 자료를 읽어보세요. 여기에서 확인하세요.

AWS를 사용하면 Mendix 사용자는 AWS가 제공하는 자동화된 절차 및 서비스의 힘을 활용할 수 있으며, 이를 직접 개발할 필요가 없으므로 시간과 노력이 절약됩니다. AWS 커넥터 Mendix, AWS에서 사용 가능한 방대한 수의 서비스를 저코드 및 저노력 방식으로 쉽게 활용할 수 있습니다. AWS 커넥터 만들기 Mendix AWS 리소스에 액세스해야 하는 사용자 지정 앱을 개발하든 Lambda 및 S3와 같은 AWS 도구를 사용하여 비즈니스 프로세스를 자동화하려고 하든, 운영을 간소화하고 조직의 전반적인 생산성을 높이는 데 도움이 될 수 있습니다. AWS 서비스를 애플리케이션에 바로 통합하는 데 도움이 되도록 REST API 기반 AWS 커넥터를 만드는 단계를 안내해 드리겠습니다. Mendix.

시작 가이드

누군가가 사용하려는 AWS 서비스에 기존 커넥터가 없다는 사실을 발견했을 때 Mendix Marketplace의 경우 첫 번째 반응은 일반적으로 "그렇다면 이 솔루션은 현재 빌드할 수 없다는 뜻인가요?"와 같습니다. Mendix, 또는 "이 문제를 해결할 방법을 찾아야 할 것 같아요."

저는 AWS 팀의 일원입니다. Mendix 지금은 그렇지만 시작하기 전에도 제 첫 반응이었습니다. 시작한 후에도 이미 AWS 커넥터를 만드는 것이 팀의 목표라는 것을 알고 있었지만 여전히 압도당하는 기분이었습니다. "AWS 서비스가 너무 많고 각 서비스에 대한 작업도 너무 많습니다. 수요에 어떻게 부응할 수 있을까요?"라고 생각했던 기억이 납니다. 팀에 막 들어갔을 때, 커넥터를 만드는 것이 세상을 구하는 것과 마찬가지라고 생각했을 때, 즉 엄청나게 어렵다고 생각했을 때의 생각이었습니다! 하지만 전혀 그렇지 않습니다. AWS 커넥터를 만드는 것은 우리 모두가 Mendix 개발자들은 우리의 방법 가이드를 통해 약간의 도움을 받을 수 있습니다!

가능한 한 빨리 새로운 AWS 커넥터를 빌드해야 한다고 결정했다면 여정을 어떻게 시작할 수 있는지 알아보기 위해 검색을 했을 것입니다. 거기서 AWS 커넥터를 빌드하는 데 사용할 수 있는 두 가지 통합 방법이 있다는 것을 보았을 것입니다. Mendix즉, 표현 상태 전송(REST) ​​애플리케이션 프로그래밍 인터페이스(API) 또는 소프트웨어 개발 키트(SDK)입니다. 프로그래밍 배경이 없다면 SDK라는 단어만 읽어도 오싹함을 느꼈을 것입니다. 사실, 이 과정은 사람들이(저를 포함하여) 머릿속에 그리는 것만큼 복잡하지 않으며 완전히 가능합니다. 하지만 우리가 Mendix 개발자 여러분, 우리가 이미 익숙한 것을 사용해서 REST API 기반 AWS 커넥터를 빌드해 보는 건 어떨까요? 해보실래요?

여기 제가 직접 쓴 단계별 가이드가 있습니다.

REST API 기반 AWS 커넥터 구축

가장 먼저 알아야 할 것은 모든 AWS 서비스와 작업에 API가 있는 것은 아니라는 것입니다. 즉, REST API 기반 AWS 커넥터를 시작하기 전에 필요한 서비스와 작업에 사용 가능한 API가 있는지 확인하고 필요한 HTTP 헤더(해당 x-amz-타겟 값). 필요한 서비스와 작업에 대한 API가 없는 경우 불행히도 계속 진행할 수 있는 유일한 다른 방법은 SDK를 사용하여 커넥터를 빌드하는 것입니다.

일부 서비스 및 작업의 경우 API는 해당 AWS 서비스의 개발자 가이드에서 찾을 수 있습니다(예: Amazon Translate에서 Signature 버전 4 사용 – Amazon Translate). 그러나 다른 사람들에게는 검색이 더 어렵습니다. 내가 유용하다고 생각한 웹사이트는 다음과 같습니다. AnyAPI(any-api.com). 당신은 갈 수 있습니다 검색 API 영역에서 작업하려는 AWS 서비스의 이름을 검색하고 이를 클릭한 다음 API가 있는 서비스 작업 목록과 해당 작업을 찾습니다. x-amz-타겟 값이 존재한다면.

AnyAPI 검색 결과

우리가 구현할 것은 우리의 것입니다 AWS 커넥터 구축 기사와 관련 링크. 일부 주제에 대한 더 자세한 설명은 기사를 참조할 수도 있습니다.

이 시나리오에서 우리는 Amazon Translate Connector가 Marketplace에 존재하지 않지만 고객 프로젝트에 필요한 커넥터라고 가정합니다. 우리는 일부 작업(API가 있는)을 사용하기 위해 AWS 커넥터를 빌드하기로 결정했으며 다음을 구현할 것입니다. 번역텍스트 액션.

프로젝트 시작

커넥터 작업을 시작하려면 먼저 적절한 환경을 준비해야 합니다.

In Mendix Studio Pro에서 새로운 모듈을 생성하겠습니다. AmazonTranslateConnector.

그런 다음 설치하고 구성하세요. AWS 인증 커넥터(버전 3.0.0 이상) Amazon 웹 서비스를 인증하는 데 필요하기 때문입니다.

. AmazonTranslateConnector 모듈에서는 아래와 같이 폴더 구조를 적용합니다.

AmazonTranslateConnector 모듈의 폴더 구조
도메인 모델에 필요한 엔터티 추가 및 빌드 시작

작업 환경이 준비되면 구현하려는 작업에 대해 자세히 알아볼 차례입니다. 특히 REST API에 요청으로 필요한 것이 무엇이고 응답으로 수신할 것이 무엇인지에 대해 알아볼 차례입니다.

우리가 구현하고자 하는 작업에 대해 자세히 알아보려면 다음으로 이동하세요. AWS 문서(amazon.com).

AWS 문서 검색

현재 작업 중인 AWS 서비스의 설명서를 찾을 수 있습니다. 우리의 경우에는 다음과 같습니다. Amazon Translate 문서.

AWS에서 Amazon Translate 문서

AWS 커넥터 개발 중에 도움이 되는 두 가지 가이드가 있습니다. REST API 기반 커넥터를 빌드하고 있기 때문에 다음을 선택합니다. Amazon Translate API 참조 – Amazon Translate API 참조, 다음 열기 TranslateText – Amazon Translate API 참조.

TranslateText Amazon Translate API 참조

이 페이지에서는 요청 및 응답 구문, 매개변수의 세부 정보, 그리고 직면할 수 있는 일반적인 오류 등 구현하고자 하는 작업에 대한 많은 귀중한 정보를 찾을 수 있습니다.

우리가 구현하려는 작업에 대해 더 자세히 읽은 후, 먼저 다음의 요청 및 응답 구문을 사용할 것입니다. 번역텍스트 해당 엔터티를 모델링하는 작업입니다.

AWS 인증 커넥터가 버전 3.0.0으로 업그레이드된 이후, 다른 모든 AWS 커넥터의 요청 엔터티는 AWSAuthentication.AbstractRequest 엔터티에서 상속하는 것이 모범 사례입니다. 또한, 타임아웃 설정은 연관된 BasicClientConfig 객체에서 지정해야 합니다. 이는 특히 마켓플레이스에 커넥터를 게시하려는 경우에 중요합니다.

하지만 이 예에서는 가장 쉬운 경로를 선택하고 싶습니다. 따라서 상속을 사용하지 않고 BasicClientConfig 객체를 생성하여 타임아웃 설정을 지정하지 않습니다.
요청 엔티티를 만들고 먼저 AWS 설명서에서 요청 본문을 살펴보겠습니다. 편리하게도 TranslateText 작업의 구문을 기반으로 요청 엔티티를 생성할 수 있습니다.

. JSON 스니펫 폴더에서 AWS 서비스의 이름을 딴 JSON 구조 문서를 생성합니다. 이 경우, JSON_번역 텍스트.

JSON 구조 문서 생성

문서를 열고 다음에서 찾은 퀘스트 구문을 붙여넣습니다. TranslateText – Amazon Translate API 참조.

그런 다음 클릭합니다 형성. 우리의 경우 적용된 설정과 적용된 용어에 관심이 없기 때문에 해당 부분을 삭제하고 그대로 둡니다. 소스 언어 코드, 대상 언어 코드글렌데일 번역된 텍스트 클릭하기 전에 새로 고침OK.

JSON 구조 문서 포맷팅

. 매핑 가져오기 폴더에서 가져오기 매핑 문서를 만들고 이름을 지정합니다. IMM_텍스트 번역 클릭 OK.

가져오기 매핑 문서 만들기

우리는 IMM_텍스트 번역 문서. 스키마 소스 섹션, 우리는 선택 JSON 구조을 선택한 다음 JSON_번역 텍스트  문서를 참조하시기 바랍니다.

JSON_ListLanguages ​​문서 선택

그런 다음 클릭합니다. 모두 확대, 고르다 모두 확인하고 OK.

 

Mendix 이제 Studio Pro에서 AWS 서비스 매핑의 시각적 표현이 표시됩니다. Mendix 응용 프로그램. 어떤 경우에는 목적이 없는 엔터티가 생성될 수 있습니다. 가져오기 매핑 문서를 다시 열고 불필요한 엔터티의 선택을 취소하여 제거하세요. 이 경우 불필요한 엔터티가 생성되지 않았으므로 계속 진행합니다.

이것이 완료되면 클릭합니다. 자동으로 지도 만들기. Mendix Studio Pro는 도메인 모델에서 AWS 서비스 응답이 매핑될 엔티티를 생성합니다. 우리의 경우 가져오기 매핑은 다음과 같습니다.

자동 매핑 결과

이제 도메인 모델로 이동하여 TranslateText 작업과 일치하도록 생성된 엔터티의 이름을 변경합니다. 편리하게도 API 설명서에서 관심 있는 응답 내의 속성이 요청과 동일하다는 것을 확인할 수 있습니다. 따라서 새로 생성된 TranslateTextRequest를 복사하여 이름을 바꾸기만 하면 됩니다. 이제 두 엔터티가 다음과 같아야 합니다.

 

텍스트 번역 요청 예시

나중에 TranslateTextRequest 객체도 내보내야 합니다. 준비하기 위해 가져오기 매핑 IMM_TranslateText와 같은 방식으로 내보내기 매핑 EXM_TranslateText를 만듭니다. 도메인 모델이 준비되면 마이크로플로우 액션을 만드는 단계로 넘어갈 수 있습니다. 하지만 작업을 시작하기 전에 인증에 필요한 상수를 빠르게 추가합니다.
애플리케이션 설정에서 AWS 인증 커넥터의 상수 값을 변경합니다. 두 가지 유형(정적 및 임시)에 필요한 상수는 아래 이미지에서 볼 수 있듯이 커넥터의 ConnectionDetails 섹션에 나열되어 있습니다.

 

AWS 인증 메뉴 스크린샷

이제 우리는 마이크로플로우에 대한 작업을 시작할 수 있습니다.

. 행정부 폴더에서 우리는 마이크로플로우라는 것을 생성합니다. POST_v1_텍스트 번역의에 따라 Mendix 명명 규칙.

에 따르면 TranslateText – Amazon Translate API 참조, 이 작업에 대한 요청에는 세 가지 필수 매개변수가 있습니다. 소스 언어 코드, 대상 언어 코드글렌데일 본문, 이는 우리가 번역하고자 하는 텍스트입니다. 따라서 이러한 매개변수에 대한 세 개의 입력 매개변수를 마이크로플로에 추가하고 라는 문자열 변수를 만듭니다. 요청 본문 작업 요청을 준비합니다.

요청 엔터티를 생성했으므로 이를 유일한 입력 매개변수로 사용할 수 있습니다.

그런 다음 다음 중 하나를 추가합니다. 임시 자격 증명 가져오기 또는 정적 자격 증명 가져오기 마이크로 흐름 AWS 인증 모듈 자격 증명을 얻기 위해. 이 구현에서 정적 자격 증명을 사용하므로 GetStaticCredentials 마이크로플로를 추가합니다. 자격 증명 객체를 만드는 데 필요한 모든 정보는 AWS 인증 커넥터에 채운 상수에서 채워집니다.

이제 요청과 AWS 자격 증명이 모두 있습니다. 그러나 REST 서비스를 호출하기 전에 Signature Version 4를 사용하여 요청 호출에 인증 정보를 추가해야 합니다. 다음을 사용하여 SigV4Header 객체를 가져오도록 마이크로플로를 구성해야 합니다. SigV4 헤더 가져오기 에서 작업 AWS 인증 모듈. 이를 위해 먼저 SigV4Builder라는 새 객체를 만듭니다. 뉴시그V4빌더 그리고 회원을 채우세요. 모범 사례에 따라 지역을 선택하세요: 번역 서비스를 이용할 수 있는 귀하의 위치에 가장 가까운 지역입니다.

객체 생성 화면의 스크린샷

다음으로, 우리는 목록을 만듭니다 SigV4매개변수 호출된 객체 헤더리스트 입력 매개변수로 필요한 두 개의 중요한 헤더가 있기 때문입니다. SigV4 헤더 가져오기 자바 액션.

첫 번째 헤더의 경우 다음을 생성합니다. SigV4매개변수 대상 콘텐츠 유형 헤더 다음 매개 변수를 사용하십시오.

  • - 컨텐츠 타입
  • 가치관 - 애플리케이션/x-amz-json-1.1

SigV4Parameter 객체 목록 생성

두 번째 헤더의 경우 다음을 생성합니다. SigV4매개변수 대상 번역 텍스트 액션 헤더 추가하려면 x-amz-타겟 위한 번역텍스트 우리가 커넥터 작업을 시작하기 전에 발견했던 작업입니다.

  • - x-amz-타겟
  • 가치관 - AWSShineFrontendService_20170701.텍스트 번역

 

객체 생성 화면의 스크린샷

우리는 이 두 헤더를 모두 추가합니다. 헤더리스트 우리는 만들었습니다.

이제 우리는 다음을 추가할 수 있습니다. SigV4 헤더 가져오기 우리의 마이크로흐름에 대한 작업을 수행하고 자격 증명을 사용합니다. 뉴시그V4빌더 객체 및 목록 SigV4매개변수 사물 헤더리스트 입력 매개변수로 사용합니다. 다음을 반환합니다. SigV4헤더 목적.

Sigv4 헤더 가져오기 화면의 스크린샷

SigV4Headers 객체를 범위에 넣은 후, TranslateTextRequest를 내보내서 RequestBody를 JSON으로 가져오고 싶습니다. 이를 위해 마이크로플로에 '매핑과 함께 내보내기' 작업을 추가합니다. 그런 다음 EXM_TranslateText 매핑과 TranslateTextRequest 객체를 선택하고 'RequestBody'라는 반환 변수를 사용합니다.

이제 필요한 정보를 모두 갖추었으므로 REST 서비스를 호출할 수 있으므로 마이크로흐름에 호출 REST 작업을 추가합니다. 오시는 길 이다 엔드포인트URL 반환된 속성 SigV4헤더; 시간 초과 기본값은 300ms로 설정되어 있으며 원하는 정수 값으로 변경할 수 있습니다. 의뢰 이다 요청 본문 마이크로플로우의 문자열 변수입니다. 우리는 다음을 추가합니다. 콘텐츠 유형 헤더, 번역 텍스트 액션 헤더, 그리고 반환된 헤더 SigV4헤더 ~으로 개체 사용자 정의 HTTP 헤더 REST 호출에도 적용됩니다.

마이크로플로에 호출 REST 작업 추가

우리는 지도를 만든다 응답 를 사용하여 IMM_텍스트 번역 문서를 반환하는 번역텍스트응답 목적.

완성된 마이크로플로는 다음과 같습니다(SigV4Headers 생성은 더 나은 명확성을 위해 하위 플로에 통합되었습니다):

 

텍스트 번역 요청 화면의 스크린샷

이제 끝났습니다! 텍스트를 다른 언어로 번역할 수 있는 새로운 Amazon Translate Connector를 만들었습니다! 이 마이크로플로를 노출하여 쉽게 재사용할 수 있도록 하는 것을 잊지 마세요.

언어를 선택하세요