Платформа
Swift 4, iOS 13, Xcode 11. Использование Amplify, GraphQL, Cognito
Проблема
Я хочу вызвать лямбда-функцию AWS позвонил onCall
. Он был написан и представляет собой простую пустую функцию. На стороне клиента я следую [1] и имею:
let lambdaInvoker = AWSLambdaInvoker.default()
let jsonObject: [String: Any] = [
"key1" : "value1",
"key2" : 2 ,
"key3" : [1, 2],
"isError" : false
]
lambdaInvoker.invokeFunction("onCall", jsonObject: jsonObject)
.continueWith(block: {(task:AWSTask<AnyObject>) -> Any? in
if( task.error != nil) {
print("Error: \(task.error!)")
return nil
}
print(">> lambda \(task)")
// Handle response in task.result
return nil
})
Но я получаю ошибку отказа в разрешении:
Ошибка: Error Domain = com.amazon aws .AWSLambdaErrorDomain Code = 0 "AccessDeniedException" UserInfo = {StatusCode = 403, responseStatusCode = 403, responseHeaders = {type = immutable dict, count = 5, entries => 2: x-amzn-Requestid = {contents = "83047425-06c6-4193-b5c6 -ac8461d84aa0 "} 3: Content-Length = 243 4: Content-Type = {contents =" application / json "} 5: x-amzn-errortype = {contents =" AccessDeniedException "} 6: Date = {contents = "Thu, 07 May 2020 02:18:00 GMT"}}, Message = User: arn: aws: sts :: 870560247484: allowed-role / ampify-alpha-alphaenv-123654-authRole / CognitoIdentityCredentials не авторизован для выполнить: lambda: InvokeFunction на ресурсе: arn: aws: lambda: us-east-1: 870560247484: function: onCall, responseDataSize = 243, NSLocalizedFailureReason = AccessDeniedException}
В моей конфигурации awsconfiguration есть эта строка. json файл
"LambdaInvoker" : {
"Default" : {
"Region": "us-east-1"
}
}
Сейчас в д ocs говорится, что я должен использовать Amplify API, но я не могу найти никакого API-интерфейса для активации лямбда-выражения, а do c очень редок за пределами базовых случаев использования c.
Приемлемые решения
Заставить lambdaInvoker
работать как есть, независимо от утверждения о Amplify
.
Укажите мне или предоставьте пример кода для вызова lamdas в Amplify API
[1] https://docs.aws.amazon.com/aws-mobile/latest/developerguide/how-to-ios-lambda.html