AWSLambda에서 Apollo Server 설계
Apollo Docs
참고 자료
AWS CLI 설치
맥OS로 진행해.
전제조건으로 AWS 계정을 가지고 있다.
1. AWSCLI 설치
pip 명령으로 설치했습니다.
コマンド
sudo pip install awscli --upgrade --ignore-installed six
2. 사용자 인증 정보를 사용하여 AWSCLI 설정
コマンド
aws configure
設定
AWS Access Key ID [None]: *************ID
AWS Secret Access Key [None]: ******************************KEY
Default region name [None]: ap-northeast-1
Default output format [None]: json
3. NPM에서 서버 프레임워크 없음 설치
npm install -g serverless
지금까지 ApolloDocs 사전 요구 사항을 지울 수 있습니다.프로젝트 설정
여기서부터 프로젝트 디렉터리에서 조작하십시오.
1. abda 패키지 설치
npm install apollo-server-lambda graphql
2. 모드 정의 및 해석기 설정
우선 프로젝트 디렉터리의 바로 아래graphiql에 있습니다.제작
// graphql.js
const { ApolloServer, gql } = require('apollo-server-lambda');
// graphQL serverが返す値に関する型の定義
const typeDefs = gql`
type Query {
hello: String
}
`;
// graphQL serverが実際にどんな値を返すのかを定義
const resolvers = {
Query: {
hello: () => 'Hello world!',
},
};
ApolloServerのコンストラクターに渡す
const server = new ApolloServer({ typeDefs, resolvers });
exports.graphqlHandler = server.createHandler({
cors: {
origin: true,
credentials: true,
},
});
인증 정보(cookie, http인증)를 사용한 요청에 대응하기 위해cros를 유효하게 설정합니다.마지막 줄에서 graphiqlHandler를 내보내는 것을 기억하십시오.
3. ServerlessFramework의 구성
serverless.yml이라는 파일을 사용하여 처리합니다.
# serverless.yml
service: apollo-lambda
provider:
name: aws
runtime: nodejs12.x
functions:
graphql:
handler: graphql.graphqlHandler
events:
- http:
path: graphql
method: post
cors: true
- http:
path: graphql
method: get
cors: true
serverless.yml 파일의handler는 방금 내보낸 파일 이름입니다.취급자의 이름을 쓰다.handler:
이상의 디버깅 준비를 마쳤습니다.
4. 프로그램 설계
다음 명령을 통해 디버깅을 할 수 있습니다.
serverless deploy
서비스 관리는 AWS 콘솔을 통해 확인할 수 있습니다.GraphiQLPlayground 설정
마지막으로 GraphiQLPlayground를 설정합니다.
구조기에playground의endpoint를 추가합니다.
const server = new ApolloServer({
typeDefs,
resolvers,
playground: {
endpoint: "/dev/graphql"
}
});
Reference
이 문제에 관하여(AWSLambda에서 Apollo Server 설계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/kei_nishikawa/articles/043709c46882c4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)