<ph type="x-smartling-placeholder"></ph> 请参阅 Application Integration 支持的连接器。
SAP Gateway 触发器
SAP Gateway 触发器是一种连接器事件触发器。借助 SAP Gateway 连接器,您可以对 SAP Gateway 数据执行插入、删除、更新和读取操作。
准备工作
- 如果您打算为 SAP Gateway 触发器创建或配置新连接,请确保您对该项目拥有以下 IAM 角色:
- 连接器管理员 (
roles/connectors.admin
)
如需了解如何授予角色,请参阅管理访问权限。
- 连接器管理员 (
- 将以下 IAM 角色授予您要用其来使用 SAP Gateway 触发器的服务账号:
- Application Integration Invoker (
roles/integrations.integrationInvoker
)
如需了解如何向服务账号授予角色,请参阅管理对服务账号的访问权限。
- Application Integration Invoker (
- 在 Google Cloud 控制台中,前往 Application Integration 页面。
- 在导航菜单中,点击集成
系统随即会显示 Integrations List(集成列表)页面,其中列出了 Google Cloud 项目中可用的所有集成。
- 选择现有集成,或点击创建集成以创建新的集成。
要创建新的集成,请执行以下操作:
- 在创建集成窗格中输入名称和说明。
- 选择集成的区域。
- 为集成选择服务账号。您可以随时在集成工具栏的 Integration summary(集成摘要)窗格中更改或更新集成的服务账号详细信息。
- 点击创建。
这将在集成编辑器中打开集成。
- 在集成编辑器导航栏中,点击触发器以查看可用触发器列表。
- 点击 SAP Gateway 触发器元素并将其放置到集成编辑器中。
- 点击集成编辑器中的 SAP Gateway 触发器元素以打开触发器配置窗格。
- 点击配置触发器。
- 在连接器事件触发器编辑器页面中提供以下配置详细信息:
- 区域:选择 SAP Gateway 连接所在的区域。
- 连接:选择要使用的 SAP Gateway 连接。
“应用集成”仅显示处于活动状态且已启用事件订阅的 SAP Gateway 连接。
- 输入事件类型字段名称。此字段用于标识与传入事件请求关联的事件类型。
{ "event_type": "user.created", ... // other request fields ... }
- 服务账号:为 SAP Gateway 触发器选择具有所需 IAM 角色的服务账号。
- 点击完成以完成触发器配置并关闭页面。
- 点击集成编辑器中的 SAP Gateway 触发器元素,打开触发器配置窗格。
- 点击配置触发器。
- 跳过区域字段。
- 点击连接,然后从下拉菜单中选择创建连接选项。
- 在 Connection Details 部分中,完成以下操作:
- 连接器:从可用连接器下拉列表中选择 SAP Gateway。
- 连接器版本:从可用版本的下拉列表中选择连接器版本。
- 在 Connection Name 字段中,输入连接实例的名称。
连接名称必须符合以下条件:
- 连接名称可以使用字母、数字或连字符。
- 字母必须小写。
- 连接名称必须以字母开头,以字母或数字结尾。
- 连接名称不能超过 49 个字符。
- 对于支持事件订阅的连接器,连接名称不能以“goog”开头前缀。
- (可选)输入连接实例的说明。
- 服务账号:选择具有所需角色的服务账号。
- 如需将连接用于事件订阅,请选择启用事件订阅。正在选择
时,系统会显示以下选项:
<ph type="x-smartling-placeholder">
- </ph>
- 启用事件订阅、实体和操作:选择此选项可将连接用于事件订阅和连接器操作(实体和操作)。
- 仅启用事件订阅:选择此选项可使用连接 仅适用于事件订阅。如果您选择此选项,请点击下一步,然后配置事件订阅。
- 命名空间:指定要从中检索数据的服务命名空间。如果网址中未指定服务,则必须提供此值。
- 服务:指定要从中检索数据的服务。如果网址中未指定服务,则必须执行此操作。
- 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 地址。
- 如果要与后端系统建立专用连接,请从列表中选择端点连接,然后从端点连接列表中选择所需的端点连接。
如果要与后端系统建立公共连接以提高安全性,您可以考虑为连接配置静态出站 IP 地址,然后将防火墙规则配置为仅将特定静态 IP 地址列入许可名单。
要输入其他目标,请点击 + 添加目标。
- 点击下一步。
- 目标类型:选择目标类型。
-
在身份验证部分中,输入身份验证详细信息。
- 选择身份验证类型,然后输入相关详细信息。
SAP Gateway 连接支持以下身份验证类型:
- 用户名和密码
- 匿名
- 点击下一步。
如需了解如何配置这些身份验证类型,请参阅配置身份验证。
- 选择身份验证类型,然后输入相关详细信息。
- 查看:查看您的连接和身份验证详细信息。
- 点击创建。
-
用户名和密码
- 用户名:连接器的用户名
- 密码:包含与连接器关联的密码的 Secret Manager Secret。
-
匿名
如果您要使用匿名登录,请选择不可用。
- API 密钥:当前经过身份验证的用户的 API 密钥。
- 为事件监听器选择以下任一身份验证类型。
- Google 身份验证。 如果您启用此选项,请按照使用 JSON Web 令牌进行身份验证中的步骤为 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.
配额和限制
如需了解配额和限制,请参阅配额和限制。