AWSLambda에서 Apollo Server 설계

2861 단어 GraphQLLambdatech
아폴로 Docs 튜토리얼을 보면서 디자인했기 때문에 스스로 공부한 기록을 남겼다.
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"
  }
});

좋은 웹페이지 즐겨찾기