· 4 years ago · Nov 30, 2020, 06:50 AM
1@GetMapping("/auth/test")
2public RestResult<String> authTest() {
3 Map<String, String> parameters = Maps.newHashMap();
4 parameters.put("uid", "123456");
5 Map<String, Object> resultMap = LambdaApiHelper.invokeLambda(parameters, "Stage-authenticateToken");
6 Map<String, Object> body = JsonUtils.decodeMap(resultMap.get("body").toString());
7 return RestResult.success("ok");
8}
9
10
11public class LambdaApiHelper {
12 private static final Logger logger = LoggerFactory.getLogger(LambdaApiHelper.class);
13 private static final AWSLambda awsLambda;
14
15 static {
16 String accessKey = "accessKey";
17 String secretKey = "secretKey";
18 BasicAWSCredentials awsCreds = new BasicAWSCredentials(accessKey, secretKey);
19 awsLambda = AWSLambdaClientBuilder.standard()
20 .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
21 .withRegion(Regions.AP_NORTHEAST_1)
22 .build();
23 }
24
25 public static AWSLambda getInstance() {
26 return awsLambda;
27 }
28
29 /**
30 * 觸發Lambda方法
31 * @param parameters 傳入參數
32 * @param functionName 方法名稱
33 * @return
34 */
35 public static Map<String, Object> invokeLambda(Map<String, String> parameters, String functionName) {
36 try {
37 InvokeRequest invokeReq = new InvokeRequest()
38 .withFunctionName(functionName)
39 .withPayload(JsonUtils.stringify(parameters));
40 return JsonUtils.decodeMap(new String(awsLambda.invoke(invokeReq).getPayload().array(), StandardCharsets.UTF_8));
41 } catch (Exception e) {
42 logger.error("LambdaApiHelper invoke error:", e);
43 throw e;
44 }
45 }
46}