本博客是一系列教程的一部分,这些教程解释了如何使用SAP云平台serverless运行时中的functions-as-a-Service产品编写serverless函数不错。
快速链接:快速指南
在上一个教程中,我们学习了如何将代码中的机密敏感值提取到一些属性文件中我们定义了secret和config映射来存储敏感值不错。但是当从愚蠢的原型到高效的项目的时候,我们想要…不:你想要(因为我继续用愚蠢的例子)把你的项目上传到GIT(或类似的),你不想上传带有密码的文件等等
FaaS有一个解决方案:它支持值文件不错。
它是怎么工作的?我们将敏感信息从"秘密"文件提取到一个值文件中该值文件未上载到GIT"secret"文件(上传到GIT)包含占位符而不是密码在部署期间,占位符将被值文件中的值替换仅此而已。很好。
现在我们只需要通过一个愚蠢的例子来学习如何去做不错。
请注意,本教程只适用于本地开发,因此这是一个
先决条件
通过2个本地教程,了解xfsrt cli和faas sdk
另一个先决条件是您必须熟悉的常用blabla等,所以请不要问我"什么是faas",尽管本教程基于上一个教程,但您可以跳过那个愚蠢的绝密博客,使用您自己的项目,只要它有任何秘密并配置
创建项目
抱歉,措辞错误:我们不创建一个项目,我们下载我们在以前的博客中创建的项目,大数据好吗,从扩展中心下载到我们的本地文件系统我们去扩展中心,打开我们的项目,按下"下载"按钮
并将项目提取到我们选择的位置。无聊的选择,云淘,就像我的例子:C:\topsecret项目看起来是这样的:
创建值文件
正确的措辞。但不太好。实际上,我们不创建该文件:我们让faassdk在命令行生成它
,我们跳转到project文件夹,然后执行以下命令:
语法:faas sdk init values–部署值
注意:我们可以使用缩写-y
注:文件扩展名(当前)必须是.yaml
该命令将在指定文件夹中生成具有给定名称的.yaml文件。如果不指定文件夹,人工智能软件下载,则将生成名为"deploy"的文件夹。
在我们的示例中,结果如下:
在我们的示例中,我们得到一个警告。原因:对于配置映射,我们使用了解析器未知的文件扩展名。它被跳过了,但这对我们来说并不重要。它不包含敏感信息,所以我们不需要将内容提取到值文件
发生了什么?init values命令解析faas.json文件归档并收集所有在此声明的机密和配置(也包括已注册的服务)。此外,找到的所有文件都列为键,云呢拿,文件内容列为值所有的数据都从项目中提取出来,放入一个值文件
在我们的示例中,它看起来是这样的:
我们可以看到我们在以前的博客中为秘密名称和文件名选择的愚蠢的名称。我们可以看到,文件内容已经被复制到这个文件中,连同文件名和机密名
替换值
本章的标题也可以替换为:"提取值"或者"将所有机密文件和配置映射的敏感内容移到新的值文件"
无论如何,什么是大数据概念,下一步是用敏感信息填充生成的值文件
在我们的情况下,它已经存在了。但是如果你从零开始一个项目-在将来-你可能会用占位符而不是密码来创建秘密
好的,在我们的例子中,我们现在必须删除所有密码等从我们的秘密和配置
我们打开hiddensecret.json文件, 删除"username"和"password"的值,并用我们脑海中出现的任何愚蠢的东西替换它们
与file类似地址配置.json
就是这样
部署
这个标题是正确的,好的但在我们部署之前…。错误:部署前不需要做任何事情但是当我们部署时,我们必须告诉部署者在哪里可以找到值因为部署程序将用严肃的值替换愚蠢的占位符。因此,我们必须将-y标志添加到deploy命令(或–deploy值)因此,在我们的示例中,deploy命令如下:
语法:xfsrt cli faas project deploy–deploy values
在部署之后,我们调用函数并检查日志,以验证值是否确实已被替换
看起来与预期一致。这不是一个很好的功能吗?我们的占位符在部署过程中被替换为真实值
如果你不相信,如果你认为这只是一个幻觉或巧合…尝试在值文件中使用不同的值
摘要
我们已经学会了如何将敏感信息从机密移到值文件中原因:秘密是dev项目的一部分,需要上传到GIT值文件机制有助于防止敏感信息进入GITfaassdk支持生成值文件XFRST-CLI允许使用参数值文件进行部署扩展中心(目前)不提供任何支持不错。
快速指南