AWS iOS Sdk中的Lambda函数问题
我是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.mAWS 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
- (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如果我提供了代码,您可以查看该问题。我需要紧急帮助。谢谢你的回答,我已经解决了这个问题。