Amazon web services 为DynamoDB创建会话的通用函数
我正在开发一个基于AWS Lambda的应用程序,它使用go SDK 我有多个函数调用dynamodbapi 目前在我创建会话的每个函数中 相反,我在想,如果我能创建一个通用的方法来创建一个会话。此会话可由其他功能使用 代码片段如下所示-Amazon web services 为DynamoDB创建会话的通用函数,amazon-web-services,go,amazon-dynamodb,Amazon Web Services,Go,Amazon Dynamodb,我正在开发一个基于AWS Lambda的应用程序,它使用go SDK 我有多个函数调用dynamodbapi 目前在我创建会话的每个函数中 相反,我在想,如果我能创建一个通用的方法来创建一个会话。此会话可由其他功能使用 代码片段如下所示- func GetDynamoDbConnection(customerId string) *dynamodb.DynamoDB { roleArn := constants.IAM_ROLE_ARN_PREFIX + constants.AWS_A
func GetDynamoDbConnection(customerId string) *dynamodb.DynamoDB {
roleArn := constants.IAM_ROLE_ARN_PREFIX + constants.AWS_ACCOUNT_ID + ":" + constants.IAM_ROLE_STR + constants.IAM_CUST_ROLE_PREFIX + "-" + customerId
sess := session.Must(session.NewSession())
creds := stscreds.NewCredentials(sess, roleArn)
dynamoDbSession := dynamodb.New(sess, &aws.Config{Credentials: creds})
return dynamoDbSession
}
dbInfo := utils.GetDynamoDbConnection(customerId)
我调用这个函数如下-
func GetDynamoDbConnection(customerId string) *dynamodb.DynamoDB {
roleArn := constants.IAM_ROLE_ARN_PREFIX + constants.AWS_ACCOUNT_ID + ":" + constants.IAM_ROLE_STR + constants.IAM_CUST_ROLE_PREFIX + "-" + customerId
sess := session.Must(session.NewSession())
creds := stscreds.NewCredentials(sess, roleArn)
dynamoDbSession := dynamodb.New(sess, &aws.Config{Credentials: creds})
return dynamoDbSession
}
dbInfo := utils.GetDynamoDbConnection(customerId)
但是,当我使用此会话进行DynamoDb调用时,它不起作用。
我收到一个错误-访问被拒绝
但是,如果我在使用会话的同一个函数中创建会话,它就会工作
有什么提示吗?代码似乎很好。请确保GetDynamoDbConnection内的函数调用正在获取apt参数并返回预期数据
此处,拒绝访问的错误可能提示在stscreds.NewCredentials函数中可能未正确配置角色ARN。因此,请检查RoleARN字符串是否具有适当的值。我更正了角色ARN,它开始正常工作。谢谢@supret