AWS AppSync 通过 AWS DynamoDB 更新和删除记录的数据没有问题。下面是一个示例解决方案,展示如何使用 AWS AppSync 和 AWS DynamoDB 更新和删除数据。
首先,你需要创建一个 AWS AppSync API,并配置一个数据源来与 DynamoDB 集成。以下是一个简单的 GraphQL 模式示例:
type Todo {
id: ID!
title: String!
completed: Boolean!
}
type Query {
getTodos: [Todo!]!
}
type Mutation {
createTodo(title: String!, completed: Boolean!): Todo!
updateTodo(id: ID!, title: String, completed: Boolean): Todo!
deleteTodo(id: ID!): Todo!
}
然后,你可以使用 AWS Amplify CLI 或手动创建与 DynamoDB 表的连接。以下是一个使用 AWS Amplify CLI 创建连接的示例:
amplify add api
# 选择 GraphQL API
# 选择 an existing authorization type
# 选择 Amazon Cognito User Pool
# 选择 No, I am done
# 选择 No
在 amplify/backend/api/{API_NAME}/build/schema.graphql
文件中,你可以定义 GraphQL 模式。
在 AWS Amplify 中,你可以使用以下代码示例来更新和删除 DynamoDB 中的数据:
import { API, graphqlOperation } from 'aws-amplify';
import { updateTodo, deleteTodo } from './graphql/mutations';
// 更新 Todo
const updateTodoItem = async (id, title, completed) => {
const input = {
id,
title,
completed
};
await API.graphql(graphqlOperation(updateTodo, { input }));
};
// 删除 Todo
const deleteTodoItem = async (id) => {
const input = { id };
await API.graphql(graphqlOperation(deleteTodo, { input }));
};
请确保在 ./graphql/mutations.js
文件中定义了 updateTodo
和 deleteTodo
mutation。示例代码如下所示:
export const updateTodo = `
mutation UpdateTodo($input: UpdateTodoInput!) {
updateTodo(input: $input) {
id
title
completed
}
}
`;
export const deleteTodo = `
mutation DeleteTodo($input: DeleteTodoInput!) {
deleteTodo(input: $input) {
id
title
completed
}
}
`;
以上是一个简单的示例,演示了如何使用 AWS AppSync 和 AWS DynamoDB 更新和删除数据。你可以根据自己的需求进行修改和扩展。