Atu*_*l K 5 java amazon-web-services node.js aws-lambda aws-ssm
我正在尝试从 lambda 访问 SSM 参数存储。我注意到从基于 Java AWS SDK 的 lambda 与基于 NodeJS AWS SDK 的 lambda 获取参数时,性能存在重大差异。
基于java的lambda获取参数的示例代码:
import com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagement;
import com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagementClientBuilder;
import com.amazonaws.services.simplesystemsmanagement.model.GetParameterRequest;
import com.amazonaws.services.simplesystemsmanagement.model.GetParameterResult;
public class SSMClientUtil {
private static AWSSimpleSystemsManagement ssm = AWSSimpleSystemsManagementClientBuilder.defaultClient();
public static String getParameter(final String parameterName) {
final long startTime = System.currentTimeMillis();
final GetParameterRequest request = new GetParameterRequest();
request.setName(parameterName);
request.setWithDecryption(true);
final GetParameterResult parameterResult = ssm.getParameter(request);
System.out.println("GetParameterResult for parameter: " + parameterName + " Time : " + (System.currentTimeMillis() - startTime) + " -> " + parameterResult);
return parameterResult.getParameter().getValue();
}
}
Run Code Online (Sandbox Code Playgroud)
基于 NodeJS 的 lambda 获取参数的示例代码:
const AWS_SDK = require("aws-sdk");
ssmClient = new AWS_SDK.SSM();
var parameterPromise = await ssmClient.getParameter(params).promise();
console.log('parameterPromise: ' + JSON.stringify(parameterPromise));
return parameterPromise.Parameter.Value;
Run Code Online (Sandbox Code Playgroud)