>

AWS 에서 시스템을 설정하려면  iOS 앱에서 사용자 계정을 만들고 사용할 수있는 경우 최근에 이 튜토리얼 . 그것은 AWSMobileClient 를 사용합니다 AWSAuthCore  그리고 AWSAuthUI .

계정을 만들고 로그인하고 로그 아웃 할 수있는 작업이있었습니다.

이제 DynamoDB 를 이용하고 싶습니다  사용자가 무언가를 저장할 수 있도록합니다. 이를 위해 DynamoDB 를 통합하려고했습니다.  다른 앱에서 작업 한 코드. 그러나 분명히 두 앱 환경이 완전히 다르기 때문에 원하는대로 작동하지 않습니다.

다음은 처리하려는 DynamoDB 데이터의 코드입니다.

import Foundation
import AWSDynamoDB
@objcMembers
class DynamoDBData: AWSDynamoDBObjectModel, AWSDynamoDBModeling {
    var _message,_timeStamp,_user: String?
    class func dynamoDBTableName() -> String {
        return "DynamoDBData"
    }
    class func hashKeyAttribute() -> String {
        return "_timeStamp"
    }
    class func rangeKeyAttribute() -> String {
        return "_user"
    }
    override class func jsonKeyPathsByPropertyKey() -> [AnyHashable: Any] {
        return [
            "_message" : "message",
            "_timeStamp" : "timeStamp",
            "_user" : "user"
        ]
    }
}

다음은 DB에 무언가를 저장하고 충돌을 일으키는 코드입니다.

@objc func handleTap() {
    print(#function)
    let dynamoDbObjectMapper = AWSDynamoDBObjectMapper.default() // Here the app is crashing.
    // Create data object using the data model:
    let dataBlock = DynamoDBData()
    dataBlock?._message = "message-TEST"
    dataBlock?._timeStamp = "timeStamp-TEST"
    dataBlock?._user = "user-TEST"
    // Save the new item:
    dynamoDbObjectMapper.save(dataBlock!, completionHandler: {
        (error: Error?) -> Void in
        if let error = error {
            print("Amazon DynamoDB Save Error: \(error)")
            return
        }
        print("An item was saved.")
    })
}

마지막으로 이것은 앱이 다운 될 때 나타나는 메시지입니다.

Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
reason: 'The service configuration is `nil`. You need to configure `Info.plist` 
or set `defaultServiceConfiguration` before using this method.'

여기서 앞으로 나아가는 방법에 대한 일부 지침 (일부라도)이 매우 도움이 될 것입니다.


  • 답변 # 1

    당신의 awsconfiguration.json 확인  다음과 같은 항목이 있습니다 :

       "DynamoDBObjectMapper": {
            "Default": {
                "Region": "AWS_REGION_NAME"
            }
        }
    
    

    나만의 AWS_REGION_NAME 설정  (예 : us-east-1 ).

관련 자료

  • 이전 mysql - django의 원시 SQL 구문에 오류가 있습니다
  • 다음 c# - 자체 조인 테이블의 다른 유형 값을 얻는 문제