AWS Parameter Store获取多个参数比一次获取一个参数慢吗?

时间:2018-07-13 07:56:31

标签: java amazon-web-services aws-ssm

我已经调试了一段时间,在这种情况下,我似乎无法弄清楚为什么并找到任何逻辑。

我正在简单系统管理中存储一些参数,例如jirahost,jirapassword,jirausername等参数!

AWSSimpleSystemsManagement ssmClient = (AWSSimpleSystemsManagement)((AWSSimpleSystemsManagementClientBuilder)((AWSSimpleSystemsManagementClientBuilder) AWSSimpleSystemsManagementClientBuilder.standard()).withRegion("us-east-1")).build();
GetParametersRequest paramRequest = new GetParametersRequest();
paramRequest.withNames(jiraHost, jiraUsername, jiraPassword, jiraIssueType, jiraProjectKey).setWithDecryption(true);
GetParametersResult paramResult = ssmClient.getParameters(paramRequest);

这是用于从参数存储中接收多个参数的代码im。

然后我正在使用google guavas stopWatch来测量时间,并且需要7秒钟才能收到所有信息!

然后我尝试仅调用一个参数:

AWSSimpleSystemsManagement simpleSystemsManagementClient = (AWSSimpleSystemsManagement)((AWSSimpleSystemsManagementClientBuilder)((AWSSimpleSystemsManagementClientBuilder) AWSSimpleSystemsManagementClientBuilder.standard()).withRegion("us-east-1")).build();
GetParameterRequest parameterRequest = new GetParameterRequest();
parameterRequest.withName(parameterKey).setWithDecryption(true);
GetParameterResult parameterResult = simpleSystemsManagementClient.getParameter(parameterRequest);

再次使用秒表,耗时不到300毫秒!?

您能看到我看不到的东西吗?最简单的方法是多次调用单个参数方法,但是,我真的很想弄清楚发生了什么。

希望你能帮助我

2 个答案:

答案 0 :(得分:0)

您可以按路径请求所有参数,而不必分别命名。

这是我在PHP中使用的示例:

$result = $ssm_client->GetParametersByPath(['Path' => '/inventory-app/']);

这将返回该 path 下的所有参数。因此,请尝试将您的参数放在层次结构中,并以这种方式抓住它们。

答案 1 :(得分:0)

这仅仅是亚马逊aws的预热时间。每次我更新lambda时,第一次调用该函数就很慢。

然后,它和以往一样快。