【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

使用 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:281126
用户头像

发布了 1835 篇内容, 共 92.2 次阅读, 收获喜欢 73 次。

关注

评论

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

iOS 面试策略之算法基础1-3节

iOSer

ios 面试 算法 iOS算法

中间件技术在百度云原生测试中的应用实践

百度开发者中心

中间件

大牛荐书 | 百度技术大牛都在读的7本书!

百度开发者中心

终于有腾讯架构师把困扰我多年的《计算机网络原理》全部讲明白了

Java 程序员 架构 网络 计算机

用AI实践继续探索2050全面数字乡村建设

百度大脑

AI

百度应用部署秘籍

百度开发者中心

San介绍以及在百度APP的实践

百度开发者中心

三年Java程序员成功跳槽涨薪,这份《阿里巴巴金三银四Java高级面试题》给了我很大的帮助。

Java架构之路

Java 程序员 架构 面试 编程语言

Canalys发布2020 Q4中国云市场报告

百度大脑

百度 AI

阿里最新发布Spring Cloud ALiBaBa全解第三版开源!

Java架构追梦

Java 阿里巴巴 架构 面试 SpringCloud Alibaba

月薪30K以上的C/C++Linux后台服务器开发学习路线是怎样的?

赖猫

c++ Linux 后台开发 后端

飞桨框架2.0正式版重磅发布,一次端到端的“基础设施”革新

百度开发者中心

架构可视化支撑系统演进探索

华为云开发者联盟

架构 软件系统 架构可视化 辅助系统 架构可视化辅助系统

HugeGraph图数据库获Apache TinkerPop官方认证

百度开发者中心

学会 Java 数据结构,想不飘都难

学Java关注我

Java 编程 架构 程序人生 计算机

三次给你讲清楚Redis之Redis是个啥

华为云开发者联盟

数据库 nosql redis hash 字符串

mysql事务隔离的研究

这就是编程

Impala简介以及与Hive的异同

五分钟学大数据

4月日更 impala

初窥Ray框架

行者AI

深度学习

乡村振兴:AI+乡村的下一个命题

百度开发者中心

软件测试面试题【2021模拟面试整理版(含答案)】

程序员阿沐

面试 软件测试

「开源」首次被列入“十四五”规划,未来大有可为

百度开发者中心

工作中的设计模式 —— 策略模式

程序员小航

Java 设计模式

2021年金三银四最新美团、字节、阿里、腾讯Java面经,已拿offer!

Java架构之路

Java 程序员 架构 面试 编程语言

5G 和云原生时代的技术下半场,视频化是最大最新的确定性

阿里巴巴云原生

人工智能 云原生 5G 存储 调度

CMS垃圾收集器

张sir

Java JVM 垃圾收集

Linux后台开发面试总结

赖猫

一不小心,它成为了 GitHub Alibaba Group 下 Star 最多的开源项目

阿里巴巴云原生

Java 微服务 云原生 dubbo Arthas

Apache-Flume的安装及简单应用

慢慢de

win10 flume 日志采集

开放原子超级链动态内核上线,十分钟可搭建一条区块链

百度开发者中心

大数据作业的工作流调度详解

大数据技术指南

大数据 4月日更

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