我已经调试了一段时间,在这种情况下,我似乎无法弄清楚为什么并找到任何逻辑。
我正在简单系统管理中存储一些参数,例如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毫秒!?
您能看到我看不到的东西吗?最简单的方法是多次调用单个参数方法,但是,我真的很想弄清楚发生了什么。
希望你能帮助我
答案 0 :(得分:0)
您可以按路径请求所有参数,而不必分别命名。
这是我在PHP中使用的示例:
$result = $ssm_client->GetParametersByPath(['Path' => '/inventory-app/']);
这将返回该 path 下的所有参数。因此,请尝试将您的参数放在层次结构中,并以这种方式抓住它们。
答案 1 :(得分:0)
这仅仅是亚马逊aws的预热时间。每次我更新lambda时,第一次调用该函数就很慢。
然后,它和以往一样快。