Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.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
AWS iOS Sdk中的Lambda函数问题_Ios_Aws Lambda_Aws Sdk_Aws Sdk Ios - Fatal编程技术网

AWS iOS Sdk中的Lambda函数问题

AWS iOS Sdk中的Lambda函数问题,ios,aws-lambda,aws-sdk,aws-sdk-ios,Ios,Aws Lambda,Aws Sdk,Aws Sdk Ios,我是AWS web服务新手,我正在AWSCOgnitoRedentialsProvider类的登录字典中使用OpenIdentity发送DeveloperAuthProviderName和令牌,然后在viecontroller中调用lambda函数,其错误如下。我使用过CognitoSyncDemo应用程序,也尝试过通过pod导入所有框架,但结果是一样的。请帮我解决这个问题 AWSiOSSDKv2[错误]AWSCredentialsProvider.m行:435 | | uu 73-[AWSCo

我是AWS web服务新手,我正在AWSCOgnitoRedentialsProvider类的登录字典中使用OpenIdentity发送DeveloperAuthProviderName和令牌,然后在viecontroller中调用lambda函数,其错误如下。我使用过CognitoSyncDemo应用程序,也尝试过通过pod导入所有框架,但结果是一样的。请帮我解决这个问题

AWSiOSSDKv2[错误]AWSCredentialsProvider.m行:435 | | uu 73-[AWSCognitoRedentialsProvider GetCredentials with Cognito:authenticated:][U block|U invoke | GetCredentials for Identity失败。错误为[Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=7“该操作无法完成。(com.amazonaws.AWSCognitoIdentityErrorDomain错误7.)“UserInfo=0x1700778c0{{uuu type=InvalidParameterException,message=请提供有效的公共提供程序}]

这是Appdelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.

    AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityId:IdentityId identityPoolId:CognitoIdentityPoolId logins:@{DeveloperAuthProviderName:Token}];

    AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1
                                                                     credentialsProvider:credentialsProvider];

    [[AWSServiceManager defaultServiceManager] setDefaultServiceConfiguration:configuration];

    return YES;
}
这是viewController中viewDidLoad中的代码

-(void)setUpCredentials{

    //initWithRegionType:CognitoRegionType identityId:IdentityId identityPoolId:CognitoIdentityPoolId logins:@{DeveloperAuthProviderName:Token}
AZCDeveoper class inherit  AWSEnhancedCognitoIdentityProvider class
    AZCDeveloper * identity = [[AZCDeveloper alloc] initWithRegionType:CognitoRegionType identityId:IdentityId accountId:nil identityPoolId:CognitoIdentityPoolId logins:@{DeveloperAuthProviderName:Token}];



    credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:CognitoRegionType
                                                               identityProvider:identity
                                                                  unauthRoleArn:nil
                                                                    authRoleArn:nil];


    // [identity refresh];

}
这是在特定单击时调用的lambda函数

-(void)lamdaInvoker{



    AWSLambdaInvoker *lambdaInvoker = [AWSLambdaInvoker defaultLambdaInvoker];

    NSLog(@"LamdaInvoker:%@",lambdaInvoker);



    [[lambdaInvoker invokeFunction:@"Hello"
                    JSONObject:@{@"": @""}] continueWithBlock:^id(BFTask *task) {
        if (task.error) {
            NSLog(@"Error: %@", task.error);
            if ([task.error.domain isEqualToString:AWSLambdaInvokerErrorDomain]
                && task.error.code == AWSLambdaInvokerErrorTypeFunctionError) {
                NSLog(@"Function error: %@", task.error.userInfo[AWSLambdaInvokerFunctionErrorKey]);

            }
        }
        if (task.exception) {
            NSLog(@"Exception: %@", task.exception);

        }
        if (task.result) {
            NSLog(@"Result: %@", task.result);

            dispatch_async(dispatch_get_main_queue(), ^{

            });

        }
        return nil;
    }];


}

嘿,从你的问题来看,我将采取的方法是关注错误的一部分,即GetCredentialsForIdentity。我对AWS也是比较陌生的,我认为有一半的时间我遇到了错误,这是因为我在凭证方面犯了一些错误。我要确保IAM用户具有调用lambda函数所需的凭据


如果您认为所有这些都已正确放置,那么我将确保您正确设置了配置

您需要提供您的代码。请编辑您的问题,格式化您的代码和错误消息,并构造一个实际的问题。如有任何帮助,将不胜感激。@Trojan如果我提供了代码,您可以查看该问题。我需要紧急帮助。谢谢你的回答,我已经解决了这个问题。