我有一个iOS购物应用程序,并想调用一个用于日志记录的lambda函数。但我不想通过API Gateway调用lambda函数来节省成本。有没有可能使用亚马逊的iOS SDK将日志发送到Lambda?
发布于 2018-12-19 08:21:37
您可以使用AWS iOS SDK直接调用lambda函数。下面是一个代码片段
AWSLambda *lambda = [AWSLambda defaultLambda];
AWSLambdaInvocationRequest *invocationRequest = [AWSLambdaInvocationRequest new];
invocationRequest.functionName = @"functionname";
invocationRequest.invocationType = AWSLambdaInvocationTypeRequestResponse;
NSDictionary *parameters = ...
invocationRequest.payload = [NSJSONSerialization dataWithJSONObject:parameters
options:kNilOptions
error:nil];
[lambda invoke:invocationRequest]
这里显示的集成测试https://github.com/aws-amplify/aws-sdk-ios/blob/335e4d82a641fdb9cdc84773bf115951e850b884/AWSLambdaTests/AWSLambdaTests.m#L110演示了如何调用lamdba函数并验证结果。
发布于 2021-01-23 19:02:36
您可以在Swift中使用AWSLambda Pod完成此操作:
import AWSLambda
// ...
let request = AWSLambdaInvocationRequest()!
request.functionName = "name of your lambda"
request.invocationType = .requestResponse
let params: [String: Any] = [:]
request.payload = try! JSONSerialization.data(withJSONObject: params, options: [])
AWSLambda.default().invoke(request) { response, error in
if let error = error {
print(error)
} else {
print(response!.debugDescription)
}
}
当然,您需要按照documentation AWS Lambda permissions中所述设置正确的权限
https://stackoverflow.com/questions/53765602
复制相似问题