API 요청 처리


이 튜토리얼에서는 Application Integration을 사용하여 인그레스 API 요청에 대해 정보를 라우팅하고 가져오는 방법에 대한 사용 사례를 설명합니다.

개요

이 튜토리얼에서는 고객 정보를 검색하기 위한 API 요청을 받는 API 트리거와의 통합을 만듭니다. API 요청 위치에 따라 통합은 MySQL 데이터베이스 또는 Oracle 데이터베이스에서 고객 세부정보를 검색합니다.

API 처리 다이어그램 API 처리 다이어그램

목표

이 튜토리얼에서는 통합에서 다음 태스크를 완료하는 방법을 보여줍니다.

  • API 트리거 추가
  • MySQL 및 Oracle 연결을 위한 커넥터 태스크를 추가하고 구성합니다.
  • 데이터 매핑 태스크를 추가하고 구성하여 API 페이로드를 추출하고 매핑합니다.

비용

이 튜토리얼에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud 구성요소를 사용합니다.

이 튜토리얼의 안내는 리소스 사용량을 Google Cloud의 항상 무료 등급 한도 내에서 유지하도록 작성되었습니다.

이 문서에 설명된 태스크를 완료했으면 만든 리소스를 삭제하여 청구가 계속되는 것을 방지할 수 있습니다. 자세한 내용은 삭제를 참조하세요.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. 서비스 계정을 만듭니다.

    1. Google Cloud Console에서 서비스 계정 만들기 페이지로 이동합니다.

      서비스 계정 만들기로 이동
    2. 프로젝트를 선택합니다.
    3. 서비스 계정 이름 필드에 이름을 입력합니다. Google Cloud 콘솔은 이 이름을 기반으로 서비스 계정 ID 필드를 채웁니다.

      서비스 계정 설명 필드에 설명을 입력합니다. 예를 들면 Service account for quickstart입니다.

    4. 만들고 계속하기를 클릭합니다.
    5. 서비스 계정에 Secret Manager Viewer (roles/secretmanager.viewer), Secret Manager Secret Accessor (roles/secretmanager) 역할을 부여합니다.

      역할을 부여하려면 역할 선택 목록을 찾은 후 역할을 선택합니다.

      역할을 추가로 부여하려면 다른 역할 추가를 클릭하고 각 역할을 추가합니다.

    6. 계속을 클릭합니다.
    7. 완료를 클릭하여 서비스 계정 만들기를 마칩니다.

  5. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  6. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  7. 서비스 계정을 만듭니다.

    1. Google Cloud Console에서 서비스 계정 만들기 페이지로 이동합니다.

      서비스 계정 만들기로 이동
    2. 프로젝트를 선택합니다.
    3. 서비스 계정 이름 필드에 이름을 입력합니다. Google Cloud 콘솔은 이 이름을 기반으로 서비스 계정 ID 필드를 채웁니다.

      서비스 계정 설명 필드에 설명을 입력합니다. 예를 들면 Service account for quickstart입니다.

    4. 만들고 계속하기를 클릭합니다.
    5. 서비스 계정에 Secret Manager Viewer (roles/secretmanager.viewer), Secret Manager Secret Accessor (roles/secretmanager) 역할을 부여합니다.

      역할을 부여하려면 역할 선택 목록을 찾은 후 역할을 선택합니다.

      역할을 추가로 부여하려면 다른 역할 추가를 클릭하고 각 역할을 추가합니다.

    6. 계속을 클릭합니다.
    7. 완료를 클릭하여 서비스 계정 만들기를 마칩니다.

개발 환경 준비

MySQL 데이터베이스 설정

MySQL 서버에 연결하고 이 튜토리얼에서 사용할 데이터베이스와 테이블을 만듭니다. 이 튜토리얼에서는 다음 행과 함께 Customers라는 테이블이 포함된 데이터베이스를 사용합니다.

  +-------------+---------------+--------------------+------------------+
  | customer_id | customer_name | customer_emailID   | customer_city    |
  +-------------+---------------+--------------------+------------------+
  |           1 | Alex          | test-01@test.com   | New York         |
  |           2 | Dana          | test-02@test.com   | Seattle          |
  +-------------+---------------+--------------------+------------------+
  

MySQL 데이터베이스를 만들고 사용하는 방법에 대한 자세한 내용은 MySQL 문서를 참조하세요.

Oracle 데이터베이스 설정

Oracle 데이터베이스에 연결하고 이 튜토리얼에서 사용할 테이블을 만듭니다. 이 튜토리얼에서는 다음 행과 함께 Customers라는 SQL 테이블이 포함된 데이터베이스를 사용합니다.

  +-------------+---------------+--------------------+------------------+
  | customer_id | customer_name | customer_emailID   | customer_city    |
  +-------------+---------------+--------------------+------------------+
  |           1 | Amal          | test-01@test.com   | Delhi            |
  |           2 | Hao           | test-02@test.com   | Beijing          |
  +-------------+---------------+--------------------+------------------+
  

Oracle 데이터베이스를 만들고 사용하는 방법에 대한 자세한 내용은 Oracle 문서를 참조하세요.

연결 구성

이 튜토리얼에서는 Integration Connectors에서 다음 연결을 구성해야 합니다.

MySQL 연결
Integration Connectors에서 MySQL 연결을 구성하여 Customer 테이블 항목을 가져옵니다. MySQL 커넥터 구성에 대한 자세한 내용은 MySQL 커넥터를 참조하세요.
Oracle DB 연결
Integration Connectors에서 Oracle DB 연결을 구성하여 Customer 테이블 항목을 가져옵니다. MySQL 커넥터 구성에 대한 자세한 내용은 Oracle DB 커넥터를 참조하세요.

통합 만들기

새 통합을 만들려면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔에서 Application Integration 페이지로 이동합니다.

    Application Integration으로 이동

  2. 탐색 메뉴에서 통합을 클릭합니다. 통합 목록 페이지가 나타납니다.
  3. 통합 만들기를 클릭하고 통합 만들기 페이지에서 다음 세부정보를 제공합니다.
    1. 통합 이름: api_fulfilment를 입력합니다.
    2. 설명: Demo integration created for tutorial을 입력합니다.
    3. 리전: 지원되는 리전 목록에서 us-central1을 선택합니다.
    4. 만들기를 클릭하여 통합 편집기를 엽니다.

통합 트리거 설정

통합을 성공적으로 만들면 식별된 이벤트의 통합을 호출하는 통합 트리거를 추가하고 구성할 수 있습니다.

이 튜토리얼에서는 모든 새 API 요청에 대해 통합을 호출하는 데 API 트리거가 사용됩니다. api_fulfilment 통합에서 API 트리거를 추가하고 구성하려면 다음을 수행합니다.

  1. 통합 편집기에서 트리거를 클릭하여 사용 가능한 트리거 목록을 표시합니다.
  2. 통합 편집기에서 API 트리거 요소를 클릭하여 배치합니다.

    Application Integration은 트리거 라벨, 트리거 이름, 트리거 ID를 자동으로 채웁니다. 트리거 IDapi_trigger/TRIGGER_NAME 형식의 머신 생성 ID이며 API 요청에 사용됩니다.

  3. 이 트리거에는 추가 구성이 필요하지 않습니다.

통합 변수 만들기

통합 변수는 프로그래밍 언어에 사용되는 변수와 유사합니다. 변수의 데이터는 통합이 실행되는 동안 읽고 쓸 수 있습니다. 이 튜토리얼에 필요한 변수를 만들려면 다음을 수행합니다.

  1. 디자이너 탐색 메뉴에서 (전환 패널)을 클릭하여 변수 창을 표시합니다.
  2. + 만들기를 클릭하고 다음 통합 변수를 만듭니다.
    변수 이름 데이터 유형 변수 유형
    location STRING 통합 입력
    customer_id STRING 통합 입력
    customer_record JSON 통합 출력

MySQL 데이터베이스에서 고객 데이터 검색

인그레스 API 요청이 US 위치에서 온 경우 다음을 수행하여 MySQL 데이터베이스에서 고객 데이터를 검색합니다.

MySQL 데이터베이스에 연결

다음 단계를 수행하여 MySQL 고객 테이블에서 고객 세부정보를 검색하도록 커넥터 태스크를 추가하고 구성합니다.

  1. 통합 편집기에서 태스크를 클릭하여 사용 가능한 태스크 목록을 표시합니다.
  2. 커넥터 요소를 클릭하고 통합 편집기에 배치합니다.
  3. 디자이너에서 커넥터 태스크 요소를 선택하여 커넥터 태스크 구성 창을 확인합니다.
  4. 를 클릭하고 커넥터 라벨의 이름을 Fetch MySQL Data로 바꿉니다.
  5. 커넥터 구성을 클릭합니다.
  6. 커넥터 태스크 편집기 페이지에서 다음을 수행합니다.
    1. 연결 선택에서 us-central1 리전을 선택합니다.
    2. 사용 가능한 연결 목록에서 Salesforce 연결을 선택합니다.
    3. 다음을 클릭합니다.
    4. 유형에서 항목을 선택합니다.
    5. 항목/작업 설정의 사용 가능한 항목 목록에서 고객을 선택한 다음 작업으로 가져오기를 선택합니다.
    6. 완료를 클릭하여 연결 구성을 완료하고 창을 닫습니다.

고객 ID를 MySQL 커넥터에 매핑

데이터 매핑 태스크는 고객 ID를 MySQL 커넥터에 매핑하는 데 사용됩니다. 통합에서 데이터 매핑을 추가하고 구성하려면 다음을 수행합니다.

  1. 통합 편집기에서 태스크를 클릭하여 사용 가능한 태스크 목록을 표시합니다.
  2. 데이터 매핑 요소를 클릭하고 통합 편집기에 배치합니다.
  3. 디자이너에서 데이터 매핑 요소를 선택하여 태스크 구성 창을 확인합니다.
  4. 를 클릭하고 데이터 매핑 태스크의 이름을 Map to MySQL로 바꿉니다.
  5. 데이터 매핑 편집기 열기를 클릭합니다.

    데이터 매핑 편집기를 사용하면 사용 가능한 변환 함수를 사용하여 원하는 출력 변수에 입력 변수를 매핑할 수 있습니다. 그러면 출력을 다른 통합 태스크 또는 트리거에 변수로 사용할 수 있습니다. 매핑 변수에 대한 자세한 내용은 매핑 추가를 참조하세요.

  6. 트리거 customer_id 통합 변수를 자동 생성된 커넥터 entityId(Fetch MySQL Data) 입력 변수에 매핑합니다.

    매핑이 완료되면 창을 닫습니다. 모든 변경사항이 자동 저장됩니다.

  7. MySQL에 매핑 태스크에서 MySQL 데이터 가져오기 커넥터로 에지 연결을 추가합니다.

MySQL 고객 세부정보 검색

MySQL 커넥터에서 고객 세부정보를 검색하려면 다음을 수행합니다.

  1. 통합 편집기에서 태스크를 클릭하여 사용 가능한 태스크 목록을 표시합니다.
  2. 데이터 매핑 요소를 클릭하고 통합 편집기에 배치합니다.
  3. 디자이너에서 데이터 매핑 요소를 클릭하여 태스크 구성 창을 확인합니다.
  4. 를 클릭하고 데이터 매핑 태스크의 이름을 Get MySQL data로 바꿉니다.
  5. 데이터 매핑 편집기 열기를 클릭합니다.
  6. MySQL connectorOutputPayload (Fetch MySQL Data) 출력 변수를 customer_record 통합 변수에 매핑합니다.

    매핑이 완료되면 창을 닫습니다. 모든 변경사항이 자동 저장됩니다.

  7. MySQL 데이터 가져오기 커넥터에서 MySQL 데이터 가져오기 태스크에 에지 연결을 추가합니다.

Oracle 데이터베이스에서 고객 데이터 검색

인그레스 API 요청이 APAC 위치에서 온 경우 다음을 수행하여 Oracle 데이터베이스에서 고객 데이터를 검색합니다.

Oracle 데이터베이스에 연결

Oracle 고객 테이블에서 고객 세부정보를 검색하려면 다음 단계를 수행하여 커넥터 태스크를 추가하고 구성합니다.

  1. 통합 편집기에서 태스크를 클릭하여 사용 가능한 태스크 목록을 표시합니다.
  2. 커넥터 요소를 클릭하고 통합 편집기에 배치합니다.
  3. 디자이너에서 커넥터 태스크 요소를 선택하여 커넥터 태스크 구성 창을 확인합니다.
  4. 를 클릭하고 커넥터 라벨의 이름을 Fetch Oracle Data로 바꿉니다.
  5. 커넥터 구성을 클릭합니다.
  6. 커넥터 태스크 편집기 페이지에서 다음을 수행합니다.
    1. 연결 선택에서 us-central1 리전을 선택합니다.
    2. 사용 가능한 연결 목록에서 Salesforce 연결을 선택합니다.
    3. 다음을 클릭합니다.
    4. 유형에서 항목을 선택합니다.
    5. 항목/작업 설정의 사용 가능한 항목 목록에서 고객을 선택한 다음 작업으로 가져오기를 선택합니다.
    6. 완료를 클릭하여 연결 구성을 완료하고 창을 닫습니다.

Oracle 커넥터에 고객 ID 매핑

통합에서 데이터 매핑을 추가하고 구성하려면 다음을 수행합니다.

  1. 통합 편집기에서 태스크를 클릭하여 사용 가능한 태스크 목록을 표시합니다.
  2. 데이터 매핑 요소를 클릭하고 통합 편집기에 배치합니다.
  3. 디자이너에서 데이터 매핑 요소를 선택하여 태스크 구성 창을 확인합니다.
  4. 를 클릭하고 데이터 매핑 태스크의 이름을 Map to Oracle로 바꿉니다.
  5. 데이터 매핑 편집기 열기를 클릭합니다.
  6. 트리거 customer_id 통합 변수를 자동 생성된 커넥터 entityId(Fetch Oracle Data) 입력 변수에 매핑합니다.

    매핑이 완료되면 창을 닫습니다. 모든 변경사항이 자동 저장됩니다.

  7. Oracle에 매핑 태스크에서 Oracle 데이터 가져오기 커넥터로 에지 연결을 추가합니다.

Oracle 고객 세부정보 검색

Oracle 커넥터에서 고객 세부정보를 검색하려면 다음을 수행합니다.

  1. 통합 편집기에서 태스크를 클릭하여 사용 가능한 태스크 목록을 표시합니다.
  2. 데이터 매핑 요소를 클릭하고 통합 편집기에 배치합니다.
  3. 디자이너에서 데이터 매핑 요소를 클릭하여 태스크 구성 창을 확인합니다.
  4. 를 클릭하고 데이터 매핑 태스크의 이름을 Get Oracle data로 바꿉니다.
  5. 데이터 매핑 편집기 열기를 클릭합니다.
  6. Oracle connectorOutputPayload (Fetch Oracle Data) 출력 변수를 customer_record 통합 변수에 매핑합니다.

    매핑이 완료되면 창을 닫습니다. 모든 변경사항이 자동 저장됩니다.

  7. Oracle 데이터 가져오기 커넥터에서 Oracle 데이터 가져오기 태스크에 에지 연결을 추가합니다.

에지 조건 추가

에지 조건을 사용하면 에지로 연결된 태스크에 전달할 통합 컨트롤에 대해 충족되어야 하는 조건을 지정할 수 있습니다. 이제 필요한 태스크를 추가하고 구성했으므로 에지 조건을 추가하여 통합 흐름을 정의할 수 있습니다.

다음 에지 조건은 location 통합 변수를 기반으로 통합 흐름을 제어합니다.

  1. 다음 에지 조건으로 API 트리거에서 MySQL에 매핑 태스크에 에지 연결을 추가합니다.
      $location$ = "US"
  2. 다음 에지 조건을 사용하여 API 트리거에서 Oracle에 매핑 태스크에 다른 에지 연결을 추가합니다.
      $location$ = "APAC"

샘플 통합 흐름

다음 그림은 이 튜토리얼을 사용하여 생성된 통합의 샘플 레이아웃을 보여줍니다.

통합 흐름을 보여주는 샘플 이미지 통합 흐름을 보여주는 샘플 이미지

통합 게시

통합을 게시하려면 통합 편집기 툴바에서 게시를 클릭합니다.

통합이 성공적으로 게시되면 게시된 통합의 실행 로그를 보고 검사할 수 있습니다. 로그를 보려면 실행 로그 아이콘을 보여주는 이미지이 통합의 실행 로그 보기를 클릭합니다. 실행 로그 페이지가 나타납니다.

통합 테스트

통합 편집기에서 통합 테스트

통합 편집기에서 통합을 테스트하려면 다음 단계를 수행합니다.

  1. 통합 편집기 툴바에서 테스트를 클릭합니다.

    통합 테스트 대화상자가 표시됩니다.

  2. 통합 입력 변수의 테스트 값을 입력하라는 메시지가 표시됩니다. 이 테스트에서는 다음을 수행합니다.
    • customer_id: 1을 입력합니다.
    • 위치: APAC를 입력합니다.
  3. 통합 테스트를 클릭합니다.

통합이 성공적으로 실행되고 다음 고객 값이 표시됩니다.

{
  "CUSTOMER_ID": 1,
  "CUSTOMER_NAME": "Amal"
  "CUSTOMER_EMAILID": "test-01@test.com "
  "CUSTOMER_CITY": "Delhi"
}

테스트에 대한 자세한 내용은 통합 테스트 및 게시를 참조하세요.

REST API 호출을 사용하여 테스트

이제 통합이 게시되고 실행 중이므로 다음 POST REST 호출을 사용하여 통합을 호출할 수 있습니다.

URL:
https://integrations.googleapis.com/v1/projects/project-name/locations/-/integrations/api_fulfilment:execute 
요청 본문:
{"trigger_id":"api_trigger/api_fulfilment_API_1"}

예시: 커스텀 입력으로 API 요청 수행

curl -v -X POST -H "Content-Type: application/json" 'https://integrations.googleapis.com/v1/projects/connectors-ip-test/locations/us-central1/integrations/api-fulfillment-integration:execute' -H "Authorization: Bearer $(gcloud auth AUTH_PROFILE)" -d  '{ "triggerId": "api_trigger/api-fulfillment-integration_API_1", "inputParameters": { "customer_id": {"string_value": 1}, "location" : {"string_value" : "US"}} }'

API는 다음 JSON을 모두 포함하는 통합 실행 응답을 반환합니다.

  {
    "CUSTOMER_ID": 2,
    "CUSTOMER_NAME": "Dana"
    "CUSTOMER_EMAILID": "test-02@test.com "
    "CUSTOMER_CITY": "Seattle"
  }
  

삭제

이 튜토리얼에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 통합을 게시 취소하고 Integration Connectors에서 생성된 연결을 삭제합니다.

  • 이 통합을 게시 취소하려면 통합 편집기 툴바에서 게시 취소를 클릭합니다. 자세한 내용은 통합 삭제를 참조하세요.
  • 연결을 삭제하는 방법에 대한 자세한 내용은 커넥터 관리를 참조하세요.