内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

微软云_百度云电影论坛_安全稳定

2021-07-11 02:05 出处:欧普曼云计算 人气: 评论(0

本博客是一系列教程的一部分,介绍如何使用SAP云平台serverless Runtime中的functions-as-a-Service产品编写serverless函数

快速链接:快速指南示例项目

在以前的博客中,我们对机密和配置图的使用做了一些介绍今天,我想通过一个例子来说明如何将一个函数连接到运行在SAP云平台cloudfoundry环境中的服务作为一个例子,我们将使用Destination服务并调用一个配置好的Destination有什么有用的目的吗?令人惊讶的是:是的这个示例可以增强为一个checktool,它每天晚上运行,检查目的地是否仍按预期响应为什么有用?它将有助于故障排除和早期发现错误的确无论如何,此示例可以修改为使用任何其他平台服务

先决条件

要遵循本教程,您应该熟悉FaaS(请参阅系列)功能代码基于节点.js通常,本教程可以在扩展中心或本地开发环境

概述

1中使用。在云驾驶舱中配置目的地

在我们的示例中,我们希望使用函数中的目的地。每当云应用程序调用外部服务的URL时,通常使用目的地。对于目的地,我们可以避免硬编码URL,它解决了CORS问题和维护

因此第一步是创建"目的地"服务的服务实例在您的共享空间中,转到服务市场并搜索互动程序"目的地"如果找不到,则可能需要添加"权利"(请参阅此处了解一般说明)创建服务实例时,不需要参数名称可以是destinationinstance

在服务器更多的世界中,我们将部署一个应用程序,使用manifest,在其中定义与服务实例的绑定。然后,在代码中,我们通过env变量访问服务凭证

在无服务器的世界中,我们不部署应用程序,因此我们没有绑定,也没有env变量这就是为什么我们需要为服务实例创建一个服务密钥。服务密钥为我们提供了与绑定相同的凭据

我们单击创建的实例名称然后在左窗格中选择"服务键"最后,我们按下"createservicekey"并输入一个类似skfordestination的名称现在我们可以查看服务键的内容

我已经标记了相关属性但目前,信息大数据,我们还是保持原样我们不关闭浏览器窗口,因为稍后需要服务密钥内容

为什么?我们需要这些凭据以编程方式调用目标

到目前为止,我们只创建了一个目标服务实例是的,云服务器好用吗,这是必要的,否则我们无法读取目标配置现在我们为一个目的地创建一个配置,它应该指向驾驶舱中的任何URL

,我们需要转到我们的子帐户,然后展开"连接",点击"目的地"并按"新目的地"

我们创建一个我们选择的目的地,不管是哪个URL,我们都不会认真使用它。截图显示了一个示例

上面的示例指向一个现有的URL。它指定不需要的用户凭据。正如代码

中稍后使用的示例,说明目的地的优势:管理员可以决定将目的地的主机更改为其他国家,例如(或景观升级),我们的功能代码不需要调整

2。Create Function which using the Destination

嵌套步骤是创建一个以编程方式使用目标的函数

我假设您熟悉无服务器运行时中的函数即服务(Function-as-a-Service),所以让我们大致了解一下所需的步骤文件内容请参见附录

我们创建了一个名为destichecker和runtime nodejs10的项目可以是本地机器上的项目,也可以是"扩展",如果您使用扩展中心

我们在faas.json文件我们创建data文件夹和secrets子文件夹,并创建一个名为destsrv.json文件)携带秘密内容在我们的示例中,文件内容是服务密钥的内容因此,我们进入云计算舱,联通物联网,查看上面创建的服务密钥我们可以复制整个内容(是的,所有的东西,包括所有我们不感兴趣的东西),然后粘贴到文件中作为我们的秘密我们保存

我们在faas.json文件在data文件夹中,我们创建一个文件(destcfg.json文件)携带一些配置值在我们的示例中,我们存储上面创建的目标配置的名称请务必在我们的网站上正确复制粘贴目的地名称

faas.json文件,我们定义了一个函数(例如"checkdestfun"),其中包含模块和处理程序以及对secret和config的引用。我们创建lib文件夹(因为在生成的faas清单中预定义)和javascript文件(目标检查器.js)javascript文件包含处理程序和一些愚蠢的测试代码(对于第一个测试)

为了测试我们的示例,我们创建了一个HTTP触发器(名为"checkdest"),好评返现模板,稍后我们可以创建一个额外的计时器触发器,让我们的函数定期执行有用的工作以后呢?是的,但不是在这个博客

在验证我们的faas.json文件就像附录中的一样,我们部署了我们的函数项目,并用HTTP触发器URL调用它例如https://123-faas-http.tenant.eu10.functions.xfs.cloud.sap/checkdest它应该像预期的那样工作

现在我们来看看实现部分。这是关于如何以编程方式使用目标服务的。该代码不是特定于无服务器函数的。唯一的区别是,我们从FaaS运行时获取调用目标服务所需的凭据,而不是访问环境变量

我们的函数应该做什么:. 访问服务凭据. 调用目的地服务以获取配置的目的地. 然后,读取目标配置以获取URL和身份验证. 最后,执行上面的URL

,我们创建了一个服务密钥然后将内容(JSON)存储在一个秘密中现在我们使用FaaS运行时的API从服务键获取所需的属性:

从配置映射获取目标名称的类似方法

目标服务本身受OAuth保护。因此,我们需要两个步骤来调用目标服务:1获取JWT令牌这里我们需要来自服务密钥的信息(clientid、clientsecret和oauthUrl)

2。呼叫目的地服务一旦我们有了JWT令牌,我们就可以使用Url from service key来调用服务,并且我们使用存储在配置映射中的destinationName

调用目标服务的结果就是请求的目标名称的目标配置在我们的示例中,目标配置很简单。我们需要网址和认证信息我们不需要对用户和密码进行编码,这可以由目的地服务方便地完成

现在我们有了调用在目的地配置中配置的端点所需的所有信息通常,在目标配置中,我们只提取URL的可变部分。通常是主人。这就是我们在例子中所做的因此,在代码中,我们必须将所有稳定段附加到从目标配置获得的URL。在我们的示例中,我们调用关于"Cat"的信息(硬编码)

请参阅附录了解完整的文件内容

在我们的函数实现中,我们希望调用一个目标URL完整的URL没有存储在我们的函数项目中。我们想用一个目的地为了调用目的地服务,我们使用存储在秘密数据库中的凭据先拿个代币然后使用它获取目标配置然后读取配置信息来调用目标端点

3。运行示例

最后,我们复制了附录中的所有函数代码。部署完成后,我们打开我们函数的URL,得到了预期的结果

分享给小伙伴们:
本文标签: 微软百度电影论坛安全稳定

相关文章

评论

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

签名: 验证码: 点击我更换图片

评论列表