Правильный способ удаления объекта в DynamoDB с AWS проектом усиления Nuxt с помощью API-интерфейса шлюза - PullRequest
0 голосов
/ 17 апреля 2020

Я создаю веб-приложение, для которого мне нужно получить данные из 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});
    }
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...