Чтобы настроить систему на AWS
, где можно создавать и использовать учетные записи пользователей из приложения для iOS, я недавно следовал этому руководству , в котором используются AWSMobileClient
, AWSAuthCore
и * 1006. *.
У меня есть кое-что работающее, где я могу создавать учетные записи и входить и выходить из системы.
Теперь я хотел бы использовать 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"
]
}
}
А вот код для того, где я пытаюсь что-то сохранить в БД и терпит неудачу:
@objc func handleTap() {
print(#function)
let dynamoDbObjectMapper = AWSDynamoDBObjectMapper.default()
// 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.")
})
}
Наконец, это сообщение, которое показывает проблему при попытке сохранить данные:
Amazon DynamoDB Save Error: Error Domain=com.amazonaws.AWSDynamoDBErrorDomain Code=19 "(null)"
UserInfo={__type=com.amazonaws.dynamodb.v20120810#ResourceNotFoundException,
message=Requested resource not found}
Поскольку я создал таблицу DynamoDBData на консоли AWS, я не совсем понимаю, почему она говорит: «Запрошенный ресурс не найден», но я полагаю, что в какой-то момент я сделал что-то не так.
В случае, если это может быть полезно, вот что появляется в консоли AWS для таблицы DynamoDBData:
Table name DynamoDBData
Primary partition key _timeStamp (String)
Primary sort key _user (String)
Point-in-time recovery DISABLED Enable
Encryption Type DEFAULT Manage Encryption
KMS Master Key ARN Not Applicable
Time to live attribute DISABLED Manage TTL
Table status Active
Creation date May 15, 2019 at 10:13:43 AM UTC+9
UTC: May 15, 2019 at 1:13:43 AM UTC
Local: May 15, 2019 at 10:13:43 AM UTC+9
Region (N. Virginia): May 14, 2019 at 8:13:43 PM UTC-5
Read/write capacity mode Provisioned
Last change to on-demand mode -
Provisioned read capacity units 5 (Auto Scaling Disabled)
Provisioned write capacity units 5 (Auto Scaling Disabled)
Last decrease time -
Last increase time -Storage size (in bytes) 0 bytes
Item count 0 Manage live count
Region US East (N. Virginia)
Amazon Resource Name (ARN) arn:aws:dynamodb:us-east-1:123456789012:table/DynamoDBData
Некоторое руководство (даже частичное) о том, как решить эту проблему, было бы очень полезно.