AppSync开发流程备忘录
开发过程中的时间流逝
使用AWS CDK和TypeScript添加AppSync API的步骤如下:
安装必需的软件包:
首先,请安装@aws-cdk/aws-appsync软件包。
npm install @aws-cdk/aws-appsync
创建CDK堆栈
在lib目录中创建一个新的堆栈文件(例如:appsync-cdk-app-stack.ts),并导入所需的模块。
import * as cdk from 'aws-cdk-lib';
import * as appsync from 'aws-cdk-lib/aws-appsync';
添加AppSync API
在Stack类中创建AppSync API。 定义GraphQL Endpoint本身。
在以下示例中,我们从schema.graphql文件中读取模式。
export class AppsyncCdkAppStack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// AppSync APIの作成
const api = new appsync.GraphqlApi(this, 'api', {
name: 'myApi',
schema: appsync.Schema.fromAsset(path.join(__dirname, 'schema.graphql')),
});
}
}
添加数据源和解析器
根据需要,可以向API添加数据源和解析器。
数据源和解析器在使用AWS AppSync构建GraphQL API时扮演着重要角色。数据源定义了API访问数据的位置,解析器指定了如何获取和操作数据,以响应客户端的GraphQL查询和变更。
数据源支持多种数据存储和服务,如DynamoDB、RDS、Amazon Elasticsearch Service、HTTP终端等。
解析器的作用是将客户端的请求映射到数据源,并将结果返回给客户端。每个解析器与特定的数据源(例如DynamoDB表或Lambda函数等)相关联,并从该数据源获取数据或进行数据更改。
管道是将多个解析器(也称为解析器函数)组合成一系列步骤的东西。每个解析器函数按顺序执行,一个函数的输出成为下一个函数的输入。这样可以从多个数据源获取数据并合并,进行复杂的数据操作和转换。
因此,通过使用管道解析程序,您可以操作多个数据源并将它们的结果组合起来,在单个请求中将其返回给客户端。这使得更复杂的数据获取和操作成为可能。
以下是一个添加DynamoDB表作为数据源并创建解析程序的示例。
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
// DynamoDBテーブルの作成
const table = new dynamodb.Table(this, 'MyTable', {
partitionKey: { name: 'id', type: dynamodb.AttributeType.STRING },
});
// データソースの追加
const dataSource = api.addDynamoDbDataSource('MyDataSource', table);
// リゾルバの追加
dataSource.createResolver({
typeName: 'Query',
fieldName: 'getItem',
requestMappingTemplate: appsync.MappingTemplate.dynamoDbGetItem('id', 'id'),
responseMappingTemplate: appsync.MappingTemplate.dynamoDbResultItem(),
});
部署
最后,将部署CDK应用程序。
cdk deploy
完成以上的步骤,我们使用AWS CDK和TypeScript成功添加了AppSync API。