HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

使用 Amazon API Gateway 为 SAP 部署 API

  • 2019-10-18
  • 本文字数:3582 字

    阅读完需:约 12 分钟

使用 Amazon API Gateway 为 SAP 部署 API

_本文由__Amazon Web Services (AWS)_的 SAP__数字顾问 KK Ramamoorthy__撰写。


您的客户,合作伙伴和员工希望通过各种渠道获得一种无缝,安全的用户体验。 例如,使用像亚马逊 Alexa 等支持语音功能的设备下订单的客户,也应该在移动设备上得到相同的体验。 或者使用移动 APP 访问培训手册的现场技术人员,也应能够在增强现实 APP 上访问这些手册并可以与其交互。


应用程序编程接口(API)在构建这种统一的用户体验方面发挥着至关重要的作用。 借助 API 和 API 管理平台,您可以以敏捷,灵活,安全和可扩展的方式把域驱动的服务发布给广大用户使用。



API 管理平台提供以下关键功能:


  • 不受规模影响的性能

  • 安全性和灵活性

  • 能够对流量限速

  • 支持全球部署和边缘缓存

  • 生命周期管理和版本控制

  • 支持金丝雀部署

  • API 密钥管理

  • 监控 API 活动

  • 用于多种编码语言的 SDK 生成

  • API 的编目和文档


Amazon API Gateway 是一个无服务器的全托管 API 管理平台,可在任何规模上实现以上这些功能。 API Gateway 可以轻松连接到 HTTP(S) Endpoint 或调用 AWS Lambda 函数来执行自定义业务逻辑。 您还可以灵活地在 API Gateway 内缓存数据,而无需在每次服务呼叫时都访问您的后端系统。 这些只是 API Gateway 的部分功能。 有关更多信息,请参阅 AWS 网站上的API Gateway

API Gateway 和 SAP

SAP 客户如何从 API Gateway 中受益呢? SAP 提供的 SAP Gateway 可以利用开放数据协议(OData)发布基于 REST 的服务。 您可以在虚拟私有云(VPC)中的私有子网中快速拉起一个 SAP Gateway Hub 系统,然后通过网络负载均衡器(NLB)将其安全地暴露给 API Gateway。 API 资源通过 API Gateway 公开后,您可以根据自己的特定业务需求对其进行进一步微调。 例如,您可以选择对某些特定服务的响应内容进行丰富,而对于其他的服务,您可能只希望通过本地代理或缓存来作为响应。


对于 Web 和移动应用程序,您可以添加 AWS AppSync 来和 API Gateway 一起使用。 AWS AppSync 是一项完全托管的服务,可以支持数据驱动的应用程序开发。 它也原生支持离线情况和冲突情况的解决方案。 查找有关AWS AppSync的更多信息

参考架构

此示例参考架构说明了所有这些组件是如何结合在一起的。



  • VPC 中的私有子网中包含您的 SAP 应用程序,以及 SAP Gateway。

  • 置于私有子网中的网络负载均衡器(NLB)将可以访问 SAP Gateway 的 HTTP(S)端口,并将针对其的任何请求进行代理转发。 为了简化起见,SAP Gateway 在此体系结构中显示为一个 Amazon EC2 实例。 但请注意,您需要实现多个应用程序服务器和 Web Dispatcher 才能实现有效的负载平衡。

  • VPC Link 可安全地将 API Gateway 与网络负载均衡器(NLB)相连接。 这使您可以通过 API Gateway 安全地发布您的 SAP 服务,而无需将 SAP 系统公开发布到外网。 如果需要,您可以使用由 API Gateway 颁发,并被 SAP 系统信任的客户端证书来进一步保护您的服务。 这样可以确保只有 API Gateway 可以访问 SAP Gateway,从而增加了额外的安全保护。

  • 对于复杂的业务逻辑,您可以使用 API 网关来触发部署在 VPC 中的 Lambda 函数。

  • API 公开发布后,您可以使用 AWS AppSync 进一步抽象您的 API 来进行数据驱动的移动和 Web 应用程序开发。

  • 其他 AWS 服务(如 Amazon Lex 和 AWS IoT)也可以与 API Gateway 集成,从而它们也使用 API Gateway 发布出来的服务。

  • 通过管理用户身份(包括用户池和联合身份),Amazon Cognito 安全地把所有这些服务联系起来,并把所有 AWS 服务和 SAP 后端服务中已登录用户的上下文记录下来。

设置步骤

现在,我们开始实现这个架构。 我们将通过 API Gateway 发布一个 SAP 提供的示例服务。 请参阅这个SAP示例服务的文档 。 这个示例服务将业务伙伴,联系人,订单和产品等各种业务对象利用 OData 服务发布了出来。


  1. 在私有子网中安装 SAP NetWeaver Gateway Advanced Business Application Programming (ABAP)系统。 开发者版本可以从 SAP 获取: SAP NetWeaver AS ABAP 7.51 SP02 SAP NetWeaver AS ABAP 7.51 SP02 on HANA (Cloud Appliance Library edition)

  2. SAP 系统安装并配置完成后,打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/ 。 在导航面版的 负载均衡 下 ,选择 负载均衡器 , 创建负载均衡器 ,并创建一个内部网络负载均衡器(Internal NLB),并将 SAP NetWeaver ABAP 系统作为 NLB 的目标。 请注意网络负载均衡器的 DNS 名称; 我们稍后将需要这个信息来设置 API Gateway。



  1. 从 API Gateway 控制台 https://console.aws.amazon.com/apigateway/创建 VPC Link。 这将通过 API Gateway 为私有子网中的 SAP 系统提供一种安全的访问方法。



  1. API Gateway 支持透传方式的代理集成。 当您只是简单地希望 API Gateway 在客户端和服务器端(在这个例子里是 SAP)之间传递请求和响应时,这会派上用场。 我们将创建一个路径为/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/{proxy}的代理资源。



  1. 我们将在{proxy}资源下添加一个 ANY 操作来解析各种 HTTP 方法(例如, GET , PUT , POST ),并通过 VPC Link 将其转发到 SAP Gateway。 请记住您在步骤 2 中记下的 DNS 名称, 您将在此使用该 DNS 名称作为端点 URL。



  1. 现在,您可能想要在 API Gateway 层缓存一些资源,这样就不需要访问后端的 SAP Gateway 了。 缓存提高了 API 的性能。 在我们的示例中,我们缓存了产品数据,因为它作为主数据,在 SAP 系统中是不会经常更改的。 要缓存数据,请转至 API Gateway 控制台,选择/GWSAMPLE_BASIC资源,为ProductSet创建子资源,然后将 GET 操作添加到该资源。



  1. 现在开始部署 API。 我们将其部署到一个名为 dev 的阶段。



  1. 在 API Gateway 控制台中,导航至 dev 阶段编辑器并选中 Cache Settings 下的 Enable API cache 框。 将 Cache capacity 设置为 0.5 GB,并将 Cache time-to-live (TTL) 设置为 3600 秒。 建立缓存需要 4-5 分钟。



  1. 您只想缓存ProductSet资源。 为避免缓存{proxy+}资源,需要选择 GET 操作。 为此方法选择 Override 并取消 Enable Method Cache 的选项 。 对所有其他方法也需要这样做。



  1. 使用例如 Postman 的工具测试来 API。 您会注意到,在第一次调用 ProductSet API 之后,后续调用将从缓存中检索。 您可以通过两种方式来验证它:


  • 检查 Amazon CloudWatch 日志以获取 CacheHitCount 和 CacheMissCount 指标。

  • 停止后端 SAP Gateway,然后再调用 API。


ProductSet API 应该仍然可以工作,但是数据将从缓存中取出,而不是从后端 SAP 系统中获取。



注意:在这个测试中,我们使用基本身份验证(在授权标题字段中),这对测试目的而言是可以接受的。 但是,对于生产方案,您将使用 OAuth 2.0 流进行身份验证。 基于 SAP ABAP 的应用程序支持两种类型的 OAuth 2.0 流程:


  1. Authorization code flow for OAuth 2.0 – 这是一个用户启动的流程,最适用于用户可以提供登录凭据的场景。 示例包括当用户可以进行登录操作的 Web 或移动应用程序。

  2. SAML 2.0 Bearer Assertion Flow for OAuth 2.0 – 这是服务器到服务器的通信流程,其中在一个服务器中已经通过身份验证的用户的用户上下文信息,可以用于在没有用户参与的情况下登录到另一台服务器。 例如,API Gateway 调用 Lambda 函数,该函数可以通过使用 OpenSAML2类的开源 SAML SDK 为 AWS 登录用户发出 SAML 断言。 然后,使用 SAML 断言,您可以获得 SAP 中同一用户的访问令牌。


关于这两种流程类型还有很多内容,我们将在随后的博文中更详细地介绍它们。

下一步

我们只是在这里粗浅的介绍了 AWS API Gateway 的各种能力。 我们在本博客中分享的内容可以帮助您快速开始集成 Amazon API Gateway 和 SAP。 在使用 API Gateway 将 SAP 流程与 AWS 服务集成之后,您还可以执行以下操作:


  • 使用Amazon Lex利用 chatbot(聊天机器人)功能丰富您的应用程序。

  • 使用Amazon Rekognition提高图像识别功能,提高生产力。

  • 使用Amazon Sumerian为增强现实应用带来增强的用户体验。

  • 使用AWS AppSync构建数据驱动的应用程序,该应用程序原生支持脱机状态下的用例。

  • 使用AWS Mobile Hub测试,部署和维护您的移动应用程序。

  • 还有很多其他选择……


可能性是无止境的,大多数 AWS 服务仅仅需要一个 API 调用就可以使用。 API Gateway 提供完全托管,即用即付的服务,使您能够轻松创建和管理大规模 API。 我们希望你觉得这篇文章有用。 请不要犹豫与我们联系,并提出您的意见或问题。


作者介绍:


戴俊


AWS 中国专业服务团队 SAP 咨询顾问,在加入 AWS 之前,曾供职于 SAP 和 EMC 历任 SAP 技术顾问及 SAP 解决方案工程师,在 SAP 系统架构设计与迁移方面有着丰富的经验。现任职于 AWS 中国专业服务团队,主要为客户提供云上 SAP 系统架构设计,SAP 上云迁移等咨询服务。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/amazon-api-gateway-sap-api/


2019-10-18 11:281291
用户头像

发布了 1848 篇内容, 共 114.0 次阅读, 收获喜欢 78 次。

关注

评论

发布
暂无评论
发现更多内容

如何把thinkphp5的项目迁移到阿里云函数计算来应对流量洪峰?

Serverless Devs

阿里云 k8s 微服务框架

实时云渲染有哪些特点,主要优势有哪些

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

Salesforce解散中国团队,国产SaaS软件如何完美替代

sofiya

企业号九月金秋榜

InfoQ写作社区官方

企业号九月金秋榜

2022亚洲视博会圆满落幕,3DCAT荣获“优秀沉浸式视觉解决方案”奖

3DCAT实时渲染

多人沉浸式音乐互动,3DCAT实时云渲染新业务场景来袭

3DCAT实时渲染

云计算 元宇宙 实时渲染云

“外卖式”售后服务体验来袭 沃丰科技ServiceGo让售后服务更智能

sofiya

【8.19-8.26】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

室外LED显示屏要如何进行合理的散热呢?

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

容器化 | 使用 Alpine 构建 Redis 镜像

RadonDB

redis 镜像 RadonDB 数据库·

NFT链游系统开发链游Dapp前景

薇電13242772558

dapp NFT

新书上市 | 关于推荐系统,这本书包含了你想知道的一切!

图灵教育

40% 的云原生开发者专注于微服务领域

阿里巴巴云原生

阿里云 微服务 云原生

自动化运维体系必不可少的系统

穿过生命散发芬芳

自动化运维 8月月更

携手共建云原生生态 阿里云云原生加速器第二次集结圆满结营

阿里巴巴云原生

阿里云 云原生加速器

2分钟了解什么是实时渲染

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

数据编排的音乐解法

Alluxio

科普 Alluxio 数据编排 8月月更

新书上市 | 关于推荐系统,这本书包含了你想知道的一切!

图灵社区

关于游戏中的实时渲染

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

什么是实时渲染,实时渲染是如何工作的

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

敏捷Scrum在中小型企业的落地实施方案

爱吃小舅的鱼

Node.js | 从前端到全栈的必经之路

海底烧烤店ai

node.js 前端 全栈 8月月更

【计算讲谈社】第十讲|当云计算遇上碳中和

大咖说

云计算 碳中和

【温氏集团】流程驱动的运维自动化在温氏集团的实践

嘉为蓝鲸

运维 AIOPS

瑞云科技荣获全国电子信息行业专精特新“最具创新价值 TOP20”!

3DCAT实时渲染

信息化赋能,移动办公系统WorkPlus助推智慧检务工作安全高效发展

WorkPlus

云原生赋能智能网联汽车消息处理基础框架构建|车联网系列专题08

EMQ映云科技

车联网 物联网 IoT emq 8月月更

2022秋招面试题,至今已有672名学长靠这套Java八股文成功入职大厂

退休的汤姆

Java 程序员 面经 Java工程师 秋招

实时云渲染如何助力虚拟展厅

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

兆骑科创创新创业服务平台——创新创业的联通之桥

兆骑科创凤阁

华为云“828 B2B企业节”,积木易搭云速3D云展与您不见不散

sofiya

使用 Amazon API Gateway 为 SAP 部署 API_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章