서버 없는 AWS AppSync GraphQL에 대한 설명
11815 단어 aws
다음은 그의 강연이다(1시간 54분 시작).
이것은 그의 것이다 slides
이것은 내가 그에 대해 강연한 기록이다.
AppSync에 대한 설명
요구 사항:
GraphQL을 선택해야 하는 이유
Facebook/FQL의 표준 기원 이야기입니다.만약 네가 페이스북이 아니라면, 너는 왜 신경을 쓰느냐?
하면, 만약, 만약...
왜 서버가 없습니까?
따라서 GraphQL을 수동으로 확장/배포하여 백엔드의 모든 부분을 닫을 필요가 없습니다.
AppSync가 서버 없는 GraphQL에 사용되는 이유
API 게이트웨이 + AWS Lambda 함수 내에서 GraphQL 백엔드를 작성할 수 있습니다...하지만 AppSync를 사용하면 훨씬 쉽습니다.
그런 다음 워크플로우는 다음과 같이 됩니다.
AWS가 AWS AppSync를 사용하는 이유
AWS 웹 콘솔에서 Guided Schema Wizard AppSync를 설정할 수 있습니다...그러나 IaC 의 경우 Amplify, CloudFormation 또는 CDK를 사용해야 합니다.
확대 - 모든 설정을 (고급) 3개의 명령으로 축소합니다.
$ amplify init
$ amplify add api
$ amplify push
Amplify CLI 또한 자동으로 조회, 변체, 구독과 유형을 생성하여 전방 응용 프로그램에서 사용할 수 있습니다!항상 확대부터 시작하여 CloudFormation 또는 CDK로 이동할 수 있습니다.
export class AppsyncCdkAppStack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// Creates the AppSync API
const api = new appsync.GraphqlApi(this, 'Api', {
name: 'cdk-notes-appsync-api',
schema: appsync.Schema.fromAsset('graphql/schema.graphql'),
});
// Prints out the AppSync GraphQL endpoint to the terminal
new cdk.CfnOutput(this, "GraphQLAPIURL", {
value: api.graphqlUrl
});
}
}
실시간 구독
AppSync를 사용하면 지정된 데이터의 일부를 실시간으로 사용할 수 있습니다.
type Subscription {
addedPost: Post
@aws_subscribe(mutations: ["addPost"])
updatedPost: Post
@aws_subscribe(mutations: ["updatePost"])
deletedPost: Post
@aws_subscribe(mutations: ["deletePost"])
}
그리고 확장성이 있어야 합니다.GraphQL Subscriptions :AppSync is load tested up to 10 million active websockets
검색
. GraphQL 작업은 단순 검색, 복잡한 검색 및 매핑, 전체 텍스트 검색, 모호/키워드 검색, 심지어AppSync supports Amazon Elasticsearch를 지원합니다.
지리 검색 기존 백엔드 에이전트
너는 를 설정할 수 있다. 이렇게 하면 너는 완전히 다시 쓸 필요가 없다.
AppSync 및 AWS Lambda 해상도 보안: 권한 부여, 역할, 권한
4가지 authz:
는 미경험증의 API 절류에 사용되며 주로 개발 또는 공공 API에 사용된다.API 키를 365일 간격으로 수동으로 회전합니다.
AWS_IAM: OIDC를 준수하는 서비스가 제공하는 OpenID 연결(OIDC) 토큰을 강제로 실행합니다.
OPENID_CONNECT: Amazon Cognito 사용자 풀에서 제공하는 OIDC 토큰을 강제로 실행합니다.
type Query {
posts:[Post!]!
@aws_auth(cognito_groups: ["Bloggers", "Readers"])
}
type Mutation {
addPost(id:ID!, title:String!):Post!
@aws_auth(cognito_groups: ["Bloggers"])
}
보다 세분화된 사용 권한을 얻으려면 다음과 같이 하십시오.AMAZON_COGNITO_USER_POOLS(현재 Resolver Mapping Templates 또는 VTL에 쓰여 있지만 다른 옵션은 진행 중입니다.)
파이프 분해기 캐시 및 오프라인 데이터 동기화
나는 이전에 이 글을 쓴 적이 있다. 테스트
슬로보단은 이것이 미래 회담의 주제라고 말했다.그러나
amplify mock
기본
을 제공합니다.부분 시뮬레이션 이벤트 소스/CQR
client -> mutation -> event storage -> eventbridge -> business logic -> subscription -> back to client
를 수행해야 하는 경우 OLAP 워크로드에 사용할 다른 프로세스를 사용합니다.AppSync는 이러한 모든 작업을 처리할 수 있습니다.그의 총결산
초도 주석
저는 스케치 노트를 좋아합니다!:
Reference
이 문제에 관하여(서버 없는 AWS AppSync GraphQL에 대한 설명), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/swyx/notes-on-serverless-graphql-with-aws-appsync-620텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)