Я создаю веб-приложение, для которого мне нужно получить данные из DynamoDB на AWS. Мое приложение в использовании AWS лямбда-функции для определения API. Когда я пытаюсь удалить запись, используя это действие хранилища:
async remove({ commit }, { pk, sk }) {
try {
const path = "/artifacts/object/" + pk + "/" + sk
console.log({path});
await API.del(api, path);
const artifacts = this.state.artifacts.artifacts.filter(
item => item.pk !== pk
);
commit('set', artifacts)
}
catch (error) {
console.log({error});
}
}
, я подтверждаю, что URL-адрес является хорошим, потому что я могу получить доступ и удалить ресурсы из веб-консоли AWS, используя URL-адрес * 1004. *
Моя проблема в том, что когда я использую этот код, консоль devtool регистрирует правильный путь, но API Amplify запрашивает запрос /artifacts/object
, и я получаю ошибку 404.
вся документация не содержит никакой полезной информации.
Вот лямбда-функция для DEL:
app.delete(path + '/object' + hashKeyPath + sortKeyPath, function(req, res) {
var params = {};
if (userIdPresent && req.apiGateway) {
params[partitionKeyName] = req.apiGateway.event.requestContext.identity.cognitoIdentityId || UNAUTH;
} else {
params[partitionKeyName] = req.params[partitionKeyName];
try {
params[partitionKeyName] = convertUrlType(req.params[partitionKeyName], partitionKeyType);
} catch(err) {
res.statusCode = 500;
res.json({error: 'Wrong column type ' + err});
}
}
if (hasSortKey) {
try {
params[sortKeyName] = convertUrlType(req.params[sortKeyName], sortKeyType);
} catch(err) {
res.statusCode = 500;
res.json({error: 'Wrong column type ' + err});
}
}
let removeItemParams = {
TableName: tableName,
Key: params
}
dynamodb.delete(removeItemParams, (err, data)=> {
if(err) {
res.statusCode = 500;
res.json({error: err, url: req.url});
} else {
res.json({url: req.url, data: data});
}
});
});