0

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

我在简单系统管理中存储了一些参数,如 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);

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

然后我使用谷歌番石榴秒表来测量时间,接收它们需要超过 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);

再用秒表,不到300ms!?

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

希望你能帮我

4

2 回答 2

0

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

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

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

这将返回该路径下的所有参数。所以,试着把你的参数放在一个层次结构中,然后一直抓取它们。

于 2018-07-14T22:33:01.127 回答
0

这只是亚马逊AWS的热身时间。每次我更新我的 lambda 时,第一次调用这个函数就这么慢。

之后它和往常一样快。

于 2018-07-16T05:58:34.150 回答