Application Integration에 지원되는 커넥터를 참조하세요.
SAP Gateway 트리거
SAP Gateway 트리거는 SAP Gateway 데이터에서 삽입, 삭제, 업데이트, 읽기 작업을 수행할 수 있는 커넥터 이벤트 트리거입니다.
시작하기 전에
- SAP Gateway 트리거에 새 연결을 만들거나 구성하려면 프로젝트에 다음 IAM 역할이 있는지 확인합니다.
- 커넥터 관리자(
roles/connectors.admin
)
역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.
- 커넥터 관리자(
- SAP Gateway 트리거에 사용할 서비스 계정에 다음 IAM 역할을 부여합니다.
- Application Integration 호출자(
roles/integrations.integrationInvoker
)
서비스 계정에 역할 부여에 대한 자세한 내용은 서비스 계정에 대한 액세스 관리를 참조하세요.
- Application Integration 호출자(
- Google Cloud 콘솔에서 Application Integration 페이지로 이동합니다.
- 탐색 메뉴에서 통합을 클릭합니다.
Google Cloud 프로젝트에서 사용할 수 있는 모든 통합이 나열된 통합 목록 페이지가 나타납니다.
- 기존 통합을 선택하거나 통합 만들기를 클릭하여 새 통합을 만듭니다.
새 통합을 만드는 경우:
- 통합 만들기 창에 이름과 설명을 입력합니다.
- 통합 리전을 선택합니다.
- 통합을 위한 서비스 계정을 선택합니다. 통합 툴바의 통합 요약 창에서 언제든지 통합에 대한 서비스 계정 세부정보를 변경하거나 업데이트할 수 있습니다.
- 만들기를 클릭합니다.
통합 편집기 페이지에서 통합이 열립니다.
- 통합 편집기 탐색 메뉴에서 트리거를 클릭하여 사용 가능한 트리거 목록을 확인합니다.
- 통합 편집기에서 SAP Gateway 트리거 요소를 클릭하여 배치합니다.
- 통합 편집기에서 SAP Gateway 트리거 요소를 클릭하여 트리거 구성 창을 엽니다.
- 트리거 구성을 클릭합니다.
- 커넥터 이벤트 트리거 편집기 페이지에서 다음 구성 세부정보를 제공합니다.
- 리전: SAP Gateway 연결 리전을 선택합니다.
- 연결: 사용할 SAP Gateway 연결을 선택합니다.
Application Integration에는 활성 상태이고 이벤트 구독이 사용 설정된 SAP Gateway 연결만 표시됩니다.
- 이벤트 유형 필드 이름을 입력합니다. 이 필드는 수신 이벤트 요청과 연결된 이벤트 유형을 식별합니다.
{ "event_type": "user.created", ... // other request fields ... }
- 서비스 계정: SAP Gateway 트리거에 필요한 IAM 역할이 있는 서비스 계정을 선택합니다.
- 완료를 클릭하여 트리거 구성을 완료하고 페이지를 닫습니다.
- 통합 편집기에서 SAP Gateway 트리거 요소를 클릭하여 트리거 구성 창을 엽니다.
- 트리거 구성을 클릭합니다.
- 리전 필드를 건너뜁니다.
- 연결을 클릭하고 드롭다운 메뉴에서 연결 만들기 옵션을 선택합니다.
- 연결 세부정보 섹션에서 다음을 완료합니다.
- 커넥터: 사용 가능한 커넥터 드롭다운 목록에서 SAP Gateway를 선택합니다.
- 커넥터 버전: 사용 가능한 버전의 드롭다운 목록에서 커넥터 버전을 선택합니다.
- 연결 이름 필드에서 연결 인스턴스의 이름을 입력합니다.
연결 이름은 다음 기준을 충족해야 합니다.
- 연결 이름에 문자, 숫자, 하이픈을 사용할 수 있습니다.
- 문자는 소문자여야 합니다.
- 연결 이름은 문자로 시작하고 문자 또는 숫자로 끝나야 합니다.
- 연결 이름은 63자를 초과할 수 없습니다.
- 선택적으로 연결 인스턴스에 대한 설명을 입력합니다.
- 서비스 계정: 필수 역할이 있는 서비스 계정을 선택합니다.
- 이벤트 구독에 연결을 사용하려면 이벤트 구독 사용 설정을 선택합니다. 이 옵션을 선택하면 다음 옵션이 표시됩니다.
- 항목 및 작업으로 이벤트 구독 사용 설정: 이벤트 구독 및 커넥터 작업(항목 및 작업) 모두에 연결을 사용하려면 이 옵션을 선택합니다.
- 이벤트 구독만 사용 설정: 이벤트 구독에만 연결을 사용하려면 이 옵션을 선택합니다. 이 옵션을 선택하는 경우 다음을 클릭한 다음 이벤트 구독을 구성합니다.
- 네임스페이스: 데이터를 검색할 서비스 네임스페이스를 지정합니다. 이는 URL에 서비스가 지정되지 않은 경우에 필요합니다.
- 서비스: 데이터를 검색할 서비스를 지정합니다. 이는 URL에 서비스가 지정되지 않은 경우에 필요합니다.
- CustomUrlParams: HTTP 요청에 포함된 커스텀 쿼리 문자열 매개변수를 지정합니다. 매개변수는
field1=value1&field2=value2
형식의 쿼리 문자열로 인코딩되어야 합니다. 쿼리 문자열의 값은 URL로 인코딩되어야 합니다. - 데이터 형식: 데이터를 검색할 데이터 형식입니다. XML 또는 JSON을 선택합니다.
- 표시 이름 사용: SAP 라벨을 사용할지 여부를 결정하는 불리언입니다.
- 필요한 경우 연결 노드 설정을 구성합니다.
- 최소 노드 수: 최소 연결 노드 수를 입력합니다.
- 최대 노드 수: 최대 연결 노드 수를 입력합니다.
노드는 트랜잭션을 처리하는 연결의 단위(또는 복제본)입니다. 연결에 대해 더 많은 트랜잭션을 처리하려면 더 많은 노드가 필요합니다. 이와 반대로 더 적은 트랜잭션을 처리하기 위해서는 더 적은 노드가 필요합니다. 노드가 커넥터 가격 책정에 미치는 영향을 파악하려면 연결 노드 가격 책정을 참조하세요. 값을 입력하지 않으면 기본적으로 최소 노드가 (높은 가용성을 위해) 2로 설정되고 최대 노드는 50으로 설정됩니다.
- 선택적으로 + 라벨 추가를 클릭하여 키/값 쌍의 형식으로 연결에 라벨을 추가합니다.
- 다음을 클릭합니다.
- 대상 섹션에서 SAP Gateway 환경의 URL 또는 OData 서비스의 전체 URL을 설정합니다. 예를 들어 형식은
${ENVIRONMENT_URL}/sap/opu/odata/${NAMESPACE}/${SERVICE}/
이고 샘플 URL은https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/
입니다. CustomUrlParams 속성을 사용하여 추가 속성을 추가합니다.- 대상 유형: 대상 유형을 선택합니다.
- 목록에서 호스트 주소를 선택하여 대상의 호스트 이름 또는 IP 주소를 지정합니다.
- 백엔드 시스템에 비공개 연결을 설정하려면 목록에서 엔드포인트 연결을 선택한 다음 엔드포인트 연결 목록에서 필요한 엔드포인트 연결을 선택합니다.
추가 보안을 사용하여 백엔드 시스템에 공개 연결을 설정하려면 연결의 고정 아웃바운드 IP 주소를 구성한 후 방화벽 규칙을 구성하여 특정 고정 IP 주소만 허용 목록에 추가합니다.
추가 대상을 입력하려면 +대상 추가를 클릭합니다.
- 다음을 클릭합니다.
- 대상 유형: 대상 유형을 선택합니다.
-
인증 섹션에서 인증 세부정보를 입력합니다.
- 인증 유형을 선택하고 관련 세부정보를 입력합니다.
SAP Gateway 연결에서는 다음 인증 유형이 지원됩니다.
- 사용자 이름 및 비밀번호
- 익명
- 다음을 클릭합니다.
이러한 인증 유형을 구성하는 방법은 인증 구성을 참조하세요.
- 인증 유형을 선택하고 관련 세부정보를 입력합니다.
- 검토: 연결 및 인증 세부정보를 검토합니다.
- 만들기를 클릭합니다.
-
사용자 이름 및 비밀번호
- 사용자 이름: 커넥터의 사용자 이름입니다.
- 비밀번호: 커넥터와 연결된 비밀번호가 포함된 Secret Manager 보안 비밀입니다.
-
익명
익명 로그인을 사용하려면 사용할 수 없음을 선택합니다.
- API 키: 현재 인증된 사용자의 API 키입니다.
- 이벤트 리스너에 다음 인증 유형 중 하나를 선택합니다.
- Google 인증. 이 옵션을 사용 설정하는 경우 JSON 웹 토큰을 사용하여 인증의 단계를 수행하여 ABAP SDK의 인증을 구성합니다. 또한 서비스 계정에 액세스 토큰이 인증에 사용되는 roles/connectors.listener 역할이 있는지 확인합니다.
- API 키 인증 이 옵션을 선택하면 API 키를 만든 후 키를 Secret Manager 보안 비밀로 저장해야 합니다. 자세한 내용은 API 키 만들기를 참조하세요.
- 이벤트 유형 필드 이름을 입력합니다. 이 필드는 수신 이벤트 요청과 연결된 이벤트 유형을 식별합니다.
{ "event_type": "user.created", ... // other request fields ... }
- 백엔드 애플리케이션과 연결 간의 보안 연결을 위해 비공개 연결 사용 설정을 선택합니다. 이 옵션을 선택하면 연결을 만든 후 추가 구성 단계를 수행해야 합니다. 자세한 내용은 이벤트 구독용 비공개 연결을 참조하세요.
- 데드 레터 구성을 입력합니다. 데드 레터를 구성하면 연결에서 처리되지 않은 이벤트를 지정된 Pub/Sub 주제에 씁니다. 다음 세부정보를 입력합니다.
- 데드 레터 프로젝트 ID: 데드 레터 Pub/Sub 주제를 구성한 Google Cloud 프로젝트 ID입니다.
- 데드 레터 주제: 처리되지 않은 이벤트의 세부정보를 쓰려는 Pub/Sub 주제입니다.
SAP Gateway 트리거 추가
SAP Gateway 트리거를 통합에 추가하려면 다음 단계를 수행합니다.
SAP Gateway 트리거를 구성하려면 Integration Connectors에서 제공하는 기존 SAP Gateway 연결을 사용하거나 인라인 연결 만들기 옵션을 사용하여 새 SAP Gateway 연결을 만들면 됩니다.
기존 연결을 사용하여 SAP Gateway 트리거 구성
SAP Gateway 트리거는 커넥터 이벤트 트리거이므로 이벤트 구독이 사용 설정된 SAP Gateway 연결만 사용하여 트리거를 구성할 수 있습니다.
새 SAP Gateway 연결을 사용하여 SAP Gateway 트리거를 구성하는 방법에 대한 자세한 내용은 새 연결을 사용하여 SAP Gateway 트리거 구성을 참조하세요.
기존 SAP Gateway 연결을 사용하여 SAP Gateway 트리거를 구성하려면 다음 단계를 수행합니다.
새 연결을 사용하여 SAP Gateway 트리거 구성
인증 구성
사용할 인증을 기반으로 세부정보를 입력합니다.
이벤트 구독 구성
이벤트 구독을 사용 설정한 경우 이벤트 구독 세부정보 섹션에 다음 값을 입력합니다.
SAP에서 인증 구성
ABAP SDK for Google Cloud 온프레미스 또는 클라우드 버전에 대한 인증 개요 가이드의 안내에 따라 SAP에서 인증을 구성합니다.
트리거 검증
트리거를 검증하려면 ABAP 프로그램을 만들면 됩니다. 다음은 참조로 사용할 수 있는 샘플 ABAP 프로그램입니다. ls_event_payload
필드는 요구사항에 따라 변경됩니다.
*&---------------------------------------------------------------------* *& Report ZR_TEST_INT_CONNECTOR *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT zr_test_int_connector. PARAMETERS: p_auth TYPE char1 RADIOBUTTON GROUP rbg1 USER-COMMAND uc DEFAULT 'X', p_apik TYPE char1 RADIOBUTTON GROUP rbg1. DATA: lv_p_projects_id TYPE string, lv_p_locations_id TYPE string, lv_p_connections_id TYPE string, ls_input TYPE /goog/cl_connectors_v1=>ty_103. TYPES: BEGIN OF event_payload, event_type TYPE string, event_id TYPE string, name TYPE string, org_id TYPE string, END OF event_payload. DATA: ls_event_payload TYPE event_payload. ls_event_payload = VALUE #( event_type = 'create-entity' event_id = '1' name = 'demo-org' org_id = 'SAP' ). TRY. IF p_Auth = abap_true. DATA(lv_client_key) = 'IC_DEMO_GOOGLE_AUTH'. lv_p_connections_id = 'conn-event-triggers-from-sap-gateway'. ELSE. lv_client_key = 'IC_DEMO_GOOGLE_APIK'. lv_p_connections_id = 'conn-event-triggers-from-sap-gateway-apik'. ENDIF. * Open HTTP Connection DATA(lo_client) = NEW /goog/cl_connectors_v1( iv_key_name = CONV #( lv_client_key ) ). * Populate relevant parameters lv_p_projects_id = lo_client->gv_project_id. lv_p_locations_id = 'us-central1'. GET REFERENCE OF ls_event_payload INTO ls_input-payload . * Call API method: connectors.projects.locations.connections.listenEvent CALL METHOD lo_client->listen_event_connections EXPORTING iv_p_projects_id = lv_p_projects_id iv_p_locations_id = lv_p_locations_id iv_p_connections_id = lv_p_connections_id is_input = ls_input IMPORTING * es_raw = es_output = DATA(ls_output) ev_ret_code = DATA(lv_ret_code) ev_err_text = DATA(lv_err_text) es_err_resp = DATA(ls_err_resp). IF lo_client->is_success( lv_ret_code ). MESSAGE 'Success' TYPE 'S'. ELSE. MESSAGE lv_err_text TYPE 'E'. ENDIF. * Close HTTP Connection lo_client->close( ). CATCH /goog/cx_sdk INTO DATA(lo_exception). MESSAGE lo_exception->get_text( ) TYPE 'E'. ENDTRY.