Правильный способ удаления объекта в DynamoDB с помощью AWS Amplify Nuxt Project путем вызова API шлюза API

Я создаю веб-приложение, в котором мне нужно получить данные из 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-адрес правильный, потому что я могу получать доступ и удалять ресурсы из WEB-консоли AWS, используя URL-адрес /artifacts/object/pk/sk

Моя проблема в том, что когда я использую этот код, консоль 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});
    }
  });
});

0 ответов

Другие вопросы по тегам