Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Amplify从iOS swift调用aws lambda函数 站台_Ios_Swift_Amazon Web Services_Aws Amplify - Fatal编程技术网

使用Amplify从iOS swift调用aws lambda函数 站台

使用Amplify从iOS swift调用aws lambda函数 站台,ios,swift,amazon-web-services,aws-amplify,Ios,Swift,Amazon Web Services,Aws Amplify,Swift 4,iOS 13,Xcode 11。使用Amplify、GraphQL、Cognito 问题 我想触发一个名为onCall的AWS lambda函数。它已经编写好了,只是一个简单的空白函数。在客户端,我遵循[1]的规定,并且: let lambdaInvoker = AWSLambdaInvoker.default() let jsonObject: [String: Any] = [ "key1" : "value1", "key

Swift 4,iOS 13,Xcode 11。使用Amplify、GraphQL、Cognito

问题 我想触发一个名为
onCall
的AWS lambda函数。它已经编写好了,只是一个简单的空白函数。在客户端,我遵循[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
    })
现在在文档中,它说我应该使用Amplify API,但是我找不到任何用于触发lambda的Amplify API,并且除了基本用例之外,文档非常稀少

可接受的解决方案
  • 使
    lambdaInvoker
    按原样工作,而不考虑有关
    放大的声明

  • 指向我或提供在Amplify API中调用lamdas的代码示例


  • [1]

    首先,请检查您是否使用正确的策略创建了lambda:

    f.在Lambda函数处理程序和角色下,选择从模板创建新角色。键入角色名称。选择名为简单微服务权限的策略模板


    您还可以使用网关API并通过它触发lambda。同时,我将尝试查找缺少的策略。我还尝试将lambda角色作为策略。相同的错误消息。基本上,cognito帐户未配置为从此区域调用lambda函数。如果尝试使用“允许”操作“invokeFunction”设置策略并设置主体:
    “主体”:{“联合”:“cognito identity.amazonaws.com”}
    ,该怎么办。也许在这个方向上钻孔是有意义的我应该在哪里指定呢?在awsconfiguation.json或console.aws.amazon.com/lambda/?您需要调整lambda的执行角色,可以在aws web控制台->lambda->选项卡权限中找到
    "LambdaInvoker" : {
      "Default" : {
           "Region": "us-east-1"
      }
    }