开发区域

高级软件开发与MATLAB

利用MATLAB在自动气象站中存储参数

在之前的一篇博文中,从MATLAB通知,我展示了亚马逊的通知系统(AWS SNS在分布式系统中,无论是应用程序还是人,服务都可以方便地在端点之间发送信息。

在这篇简短的文章中,我想展示MathWorks工具如何使用另一个AWS服务——简单系统管理器(舰导弹)来在分布式系统的各部分之间交换信息。在本地运行时,我们经常使用环境变量作为在进程之间传递简单值或状态的简单方法。然而,当移动到分布式系统时,这不是一个选择。我们可以使用数据库作为共享信息存储(例如:AWS DynamoDB),但是对于一个简单的标志或单个变量,这可能有点过头了。这个用例很常见,甚至XKCD也有覆盖

如果我们可以设置一个类似于value的环境变量,它将在基于云的部署中保持持久性并可访问,那会怎么样呢?从下载AWS SSM的MATLAB接口从GitHub。

改变MATLAB软件/目录,并运行startup.m脚本。然后创建SSM客户端:

舰导弹= aws.simplesystemsmanagement.AWSSimpleSystemsManagementClient ();ssm.initialize ();

创建一个请求并设置变量的名称、值和类型:

%创建一个请求,将一个参数放入SSM中putParameterRequest = aws.simplesystemsmanagement.model.PutParameterRequest();putParameterRequest.setName(“myParameterName”);%的名字putParameterRequest.setValue(“myParameterValue”);%值putParameterRequest.setType(“字符串”);%数据类型
服务的价值:
%保存参数putParameterResult = ssm.putParameter(putParameterRequest);

现在,可以使用使用AWS权限控制的许多语言api来访问该值,从而很容易将系统的松散耦合部分安全地绑定在一起。您可以用自己的一行代码将其包装起来出口如果你愿意的话。

这里我们看到SSM门户网站所反映的价值:


我们也可以读回值,删除它等等:

%创建一个请求从SSM获取一个参数getParameterRequest = aws.simplesystemsmanagement.model.GetParameterRequest();getParameterRequest.setName(“myParameterName”);%获取结果getParameterResult = ssm.getParameter(getParameterRequest);参数= getParameterResult.getParameter ();resultValue = parameter.getValue ();

请到GitHub页面有关界面的详细信息。

总之,无论您只是想使用AWS的Parameter Store来保存一次性持久计数器或S3 URL,还是想将基于MATLAB的计算集成到一个复杂的、多服务的全局工作流中,都可以使用这个包来启用它。

系统管理器有许多功能,其中参数存储只是其中之一,如果你有关于MATLAB如何与其他系统管理器功能工作的想法,请让我们知道!

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。