我是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=请提供有效的公共提供程序}]
这是应用程序
- (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;
}
这是在view Controller中的viewdiLoad中的代码。
-(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函数所需的凭据。
如果您认为所有这些都已正确放置,那么我将确保您正确设置了配置。
我有一个AWS lambda函数,它的工作是侦听传入的SNS事件,从Secrets Manager检索RDS秘密,并使用npm上的mssql库使用3个sql查询执行sql事务。 10次中有1次它正确地将所有3个查询提交到数据库。每隔一次,console.log消息就会乱序,有时lambda函数会在事务连接打开时终止,导致连接被阻塞。这绝对是一个同步问题,但无法判断它是来自AWS Lambda、ms
有时您可能只需要在程序中的一个位置使用一个函数,并且该函数非常简单,您可能不会给它命名,或者可能不想将它存储在符号表中,而宁愿编写一个未命名或匿名的函数。 LISP允许您编写仅在程序中遇到它们时才计算的匿名函数。 这些函数称为Lambda functions. 您可以使用lambda表达式创建此类函数。 lambda表达式的语法如下 - (lambda (parameters) body) 无法
我已经按照本教程使用AWS lambda创建了另一个桶的图像缩略图:http://docs.AWS.amazon.com/lambda/latest/dg/walkthrough-S3-events-adminuser-create-test-function-upload-zip-test.html 我已经完成了教程前面的所有步骤,但是当我从上面的链接在Lambda测试中运行下面的代码时 我收到
问题内容: 我想使用匿名函数,所以我决定制作一个简单的主要查找器。这里是: 然而,我发现了什么,就是在每次访问,而我希望它是一个字面上的数字。我怎样才能使其成为替代? 问题答案: 您可以在创建lambda时“捕获” 这会将lambda的上下文设置为等于创建时的值。您还可以说,如果需要的话,它并不能完全捕获,但是可以满足您的需要。 这是一个查找问题,类似于具有定义函数的以下内容:
其实就是一个匿名函数,为什么叫lambda?因为和后面的函数式编程有关. 推荐: 知乎
问题内容: (如“家庭作业”标签所示,这是计算机科学中一项 大型 项目的一部分。) 我在写 危险! 使用tkinter在Python中进行模拟,而我在按钮中使用lambda函数时遇到了一个大问题。假设并且是一个列表。 有关所有代码,请参见我的小代码查看器(正在构建中!) 这就是出现问题的地方,因为当我单击板上的任何按钮时,它总是转到板上的最后一个按钮。我尝试了其他方法,不幸的是所有方法都使用过,而