查看 Application Integration 支援的連接器。
SAP Gateway 觸發事件
SAP Gateway 觸發事件是連接器事件觸發事件。SAP Gateway 連接器可讓您對 SAP Gateway 資料執行插入、刪除、更新和讀取作業。
事前準備
- 如果您打算為 SAP Gateway 觸發事件建立或設定新的連線,請務必在專案中具備以下 IAM 角色:
- 連接器管理員 (
roles/connectors.admin
)
如要進一步瞭解如何授予角色,請參閱「管理存取權」。
- 連接器管理員 (
- 將下列 IAM 角色授予您要用於 SAP Gateway 觸發事件的服務帳戶:
- Application Integration 叫用者 (
roles/integrations.integrationInvoker
)
如要瞭解如何將角色授予服務帳戶,請參閱「管理服務帳戶的存取權」。
- Application Integration 叫用者 (
- 前往 Google Cloud 控制台的「Application Integration」頁面。
- 在導覽選單中,按一下「整合」
系統隨即會顯示「Integrations List」頁面,列出 Google Cloud 專案中可用的所有整合項目。
- 選取現有的整合,或按一下「建立整合」來建立新的整合。
如果您要建立新的整合功能:
- 在「Create Integration」窗格中輸入名稱和說明。
- 選取整合作業的區域。
- 選取要用於整合的服務帳戶。您隨時可以透過整合工具列的 「整合摘要」窗格,變更或更新整合作業的服務帳戶詳細資料。
- 按一下 [建立]。
新建立的整合服務會在整合服務編輯器中開啟。
- 在整合服務編輯器的導覽列中,按一下「觸發條件」,即可查看可用的觸發條件清單。
- 在整合服務編輯器中,按一下並放置 SAP Gateway 觸發條件元素。
- 按一下整合服務編輯器中的「SAP Gateway trigger」 元素,開啟觸發條件設定窗格。
- 按一下「設定觸發條件」。
- 在「連接器事件觸發條件編輯器」頁面中提供下列設定詳細資料:
- Region:選取 SAP Gateway 連線的地區。
- 連線:選取要使用的 SAP Gateway 連線。
「應用程式整合」只會顯示已啟用事件訂閱功能的有效 SAP Gateway 連線。
- 輸入事件類型欄位名稱。這個欄位會指出與傳入事件要求相關聯的事件類型。
{ "event_type": "user.created", ... // other request fields ... }
- 服務帳戶:選取具有 SAP Gateway 觸發條件必要 IAM 角色的服務帳戶。
- 按一下「完成」即可完成觸發條件設定,並關閉頁面。
- 按一下整合服務編輯器中的「SAP Gateway trigger」元素,開啟觸發條件設定窗格。
- 按一下「設定觸發條件」。
- 略過「區域」欄位。
- 按一下「連線」,然後在下拉式選單中選取「建立連線」選項。
- 在「連線詳細資料」部分中,完成下列操作:
- 連接器:從可用連接器的下拉式清單中選取「SAP Gateway」。
- 連接器版本:從可用版本的下拉式清單中選取連接器版本。
- 在「Connection Name」欄位中,輸入連線例項的名稱。
連線名稱必須符合下列條件:
- 連線名稱可以使用英文字母、數字或連字號。
- 字母必須為小寫。
- 連線名稱的開頭必須為英文字母,結尾則須為英文字母或數字。
- 連結名稱不得超過 49 個半形字元。
- 如果連接器支援事件訂閱功能,則連線名稱開頭不得為「goog」前置字串。
- 視需要輸入連線例項的「Description」(說明)。
- 服務帳戶:選取具備必要角色的服務帳戶。
- 如要將連線用於事件訂閱,請選取「啟用事件訂閱」。選取這個選項後,系統會顯示下列選項:
- 啟用事件訂閱功能,並使用實體和動作:選取這個選項,即可同時使用連線進行事件訂閱和連接器作業 (實體和動作)。
- 僅啟用事件訂閱功能:選取這個選項,即可只將連線用於事件訂閱。如果選取這個選項,請按一下「下一步」,然後設定事件訂閱項目。
- 命名空間:指定要擷取資料的服務命名空間。如果網址中未指定服務,則必須提供此屬性。
- 服務:指定要擷取資料的服務。如果網址中未指定服務,則必須提供此屬性。
- CustomUrlParams:指定 HTTP 要求中包含的自訂查詢字串參數。參數必須以以下格式編碼為查詢字串:
field1=value1&field2=value2
。查詢字串中的值必須經過網址編碼。 - 資料格式:擷取資料的資料格式。選取 XML 或 JSON。
- 使用顯示名稱:布林值,決定是否使用 SAP 標籤。
- 視需要設定連線節點設定:
- 節點數量下限:輸入連線節點數量下限。
- 節點數量上限:輸入連線節點數量上限。
節點是用來處理交易的連線單位 (或備用資源)。處理的交易量越多,就需要越多節點;反之,處理的交易量越少,就需要越少節點。如要瞭解節點對連接器定價的影響,請參閱「 連線節點的定價」。如果您未輸入任何值,系統預設會將最小節點設為 2 (以提高可用性),並將最大節點設為 50。
- 您可以按一下「+ 新增標籤」,以鍵/值組合的形式為連線新增標籤。
- 點按「下一步」。
- 在「Destinations」部分,設定 SAP Gateway 環境的網址,或 OData 服務的完整網址。例如格式為
${ENVIRONMENT_URL}/sap/opu/odata/${NAMESPACE}/${SERVICE}/
,網址為https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/
。使用 CustomUrlParams 屬性新增任何其他屬性。- 目的地類型:選取目的地類型。
- 從清單中選取「主機位址」,指定目的地的主機名稱或 IP 位址。
- 如果您想建立與後端系統的私人連線,請從清單中選取「Endpoint attachment」,然後從「Endpoint Attachment」清單中選取所需的端點附件。
如果您想建立與後端系統的公開連線,並提供額外安全性,建議您為連線設定靜態外連 IP 位址,然後設定防火牆規則,只允許特定靜態 IP 位址進入白名單。
如要輸入其他目的地,請按一下「+ 新增目的地」。
- 點按「下一步」。
- 目的地類型:選取目的地類型。
-
在「Authentication」部分中,輸入驗證詳細資料。
- 選取「驗證類型」並輸入相關詳細資料。
SAP Gateway 連線支援下列驗證類型:
- 使用者名稱和密碼
- 匿名
- SAP BTP (OAuth 2.0 - 用戶端憑證)
- 點按「下一步」。
如要瞭解如何設定這些驗證類型,請參閱「設定驗證」。
- 選取「驗證類型」並輸入相關詳細資料。
- 查看:查看連線和驗證詳細資料。
- 按一下 [建立]。
-
使用者名稱和密碼
- 使用者名稱:連接器的使用者名稱
- 密碼:Secret Manager 密鑰,內含與連接器相關聯的密碼。
-
匿名
如果您想使用匿名登入功能,請選取「不適用」。
- API 金鑰:目前已驗證使用者的 API 金鑰。
-
SAP BTP (OAuth 2.0 - 用戶端憑證)
- 用戶端 ID:輸入從 API 用戶端頁面取得的用戶端 ID。
- 用戶端密鑰:輸入從 API 用戶端頁面取得的用戶端密鑰。
- 密鑰版本:輸入上方所選密鑰的密鑰版本。
- OAuthAccessTokenURL:輸入 OAuth 存取權杖的網址。
- 目的地名稱:輸入 SAP BTP 目的地的名稱。
- 到達網頁網址:輸入 SAP BTP 的到達網頁網址。
- 啟用驗證覆寫功能:選取這個選項,讓連線在執行階段動態接受其他驗證。
- 請為事件監聽器選取下列任一驗證類型。
- Google 驗證。如果您啟用這個選項,請按照「使用 JSON Web Token 進行驗證」一文中的步驟,設定 ABAP SDK 的驗證機制。此外,請確認服務帳戶具備 roles/connectors.listener 角色,且存取權憑證可用於驗證。
- API 金鑰驗證。如果您選取這個選項,就必須先建立 API 金鑰,然後將金鑰儲存為 Secret Manager 密鑰。詳情請參閱「建立 API 金鑰」。
- 輸入事件類型欄位名稱。這個欄位會指出與傳入事件要求相關聯的事件類型。
{ "event_type": "user.created", ... // other request fields ... }
- 選取「Enable private connectivity」,即可在後端應用程式和連線之間建立安全連線。如果選取這個選項,您必須在建立連線後執行其他設定步驟。詳情請參閱「事件訂閱的私人連線」。
- 輸入死信設定。如果您設定無效信件,連線會將未處理的事件寫入指定的 Pub/Sub 主題。輸入下列詳細資料:
- 死信專案 ID: 您設定死信 Pub/Sub 主題的 Google Cloud 專案 ID。
- 無效信件主題: 您要寫入未處理事件詳細資料的 Pub/Sub 主題。
新增 SAP Gateway 觸發條件
如要在整合中新增 SAP Gateway 觸發條件,請執行下列步驟:
如要設定 SAP Gateway 觸發事件,您可以使用整合連接器中現有的 SAP Gateway 連線,也可以使用內嵌連線建立選項建立新的 SAP Gateway 連線。
使用現有連線設定 SAP Gateway 觸發事件
SAP Gateway 觸發條件是連接器事件觸發條件,因此您只能使用已啟用事件訂閱的 SAP Gateway 連線來設定觸發條件。
如要瞭解如何使用新的 SAP Gateway 連線設定 SAP Gateway 觸發事件,請參閱「使用新的連線設定 SAP Gateway 觸發事件」
如要使用現有的 SAP Gateway 連線設定 SAP Gateway 觸發事件,請執行下列步驟:
使用新連線設定 SAP Gateway 觸發條件
設定驗證機制
根據要使用的驗證方法輸入詳細資料。
設定事件訂閱
如果您已啟用事件訂閱功能,請在「事件訂閱詳細資料」部分輸入下列值:
在 SAP 中設定驗證
按照「Google Cloud 適用的 ABAP SDK 地端或任何雲端版本的驗證總覽」指南中的操作說明,在 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.
配額與限制
如要進一步瞭解配額和限制,請參閱「配額與限制」。