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

AWS Parameter Store getting multiple parameters is way slower than getting one at a time?

我已经对此进行了一段时间的调试,但我似乎无法弄清楚原因,也无法在这种情况下找到任何逻辑。

我在Simple Systems Management中存储了一些参数,比如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);

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

然后我正在使用 google 番石榴秒表来测量时间,需要 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 毫秒!?

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

希望你能帮助我

您可以通过路径请求所有参数,而不是单独命名它们。

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

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

此returns 那个路径 下的所有参数。所以,试着把你的参数放在一个层次结构中,然后用这种方式抓住它们。

这只是 amazon aws 的预热时间。每次我更新我的 lambda 时,第一次调用函数都这么慢。

之后一如既往的快