我正在開發一個使用 go SDK 的基于 AWS Lambda 的應用程序。我有多個調用 DynamoDB API 的函數。目前在每個函數中我都在創建會話。而不是這個我在想,如果我可以創建一個可以創建會話的通用方法。這個會話可以被其他函數使用。代碼片段如下 -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 調用時,它不起作用。我收到一個錯誤 - 訪問被拒絕。但是,如果我在使用它的同一函數中創建會話,它就可以工作。任何指針?
1 回答

Qyouu
TA貢獻1786條經驗 獲得超11個贊
代碼似乎沒問題。請確保GetDynamoDbConnection中的函數調用正在獲取適當的參數并返回預期的數據。
此處,拒絕訪問錯誤可能暗示角色 ARN可能未在stscreds.NewCredentials函數中正確配置。因此,請檢查RoleARN字符串是否具有適當的值。
- 1 回答
- 0 關注
- 155 瀏覽
添加回答
舉報
0/150
提交
取消