[AWS] AppSync에서 AuroraDB로 연결

16774 단어 AWSauroraAppSynctech

전제 조건

  • awscli
  • 사용 가능
    → 없는 사람은 빨리 바꿔라!
    https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-mac.html

    클러스터를 만들기 전에


    샘플로synctutorial의 이름을 응용하여 디렉터리를 만들고 다음 코드를 실행합니다.
    이번에는 자신의 상황에 따라db-Cluster identifier를 http-endpoint test, region을 도쿄로 설정했다.
    mac@pro appsyncTutorial % aws rds create-db-cluster --db-cluster-identifier http-endpoint-test --master-username WRITE_USERNAME_HERE \
    --master-user-password WRITE_PASSWORD_HERE --engine aurora --engine-mode serverless \
    --region ap-northeast-1
    
    반환값
    DBCluster:
      AllocatedStorage: 1
      AssociatedRoles: []
      AvailabilityZones:
        - ap-northeast-1
        - ap-northeast-2
        - ap-northeast-3
      BackupRetentionPeriod: 1
      ClusterCreateTime: "2021-5-11"
      CopyTagsToSnapshot: false
      CrossAccountClone: false
      DBClusterArn: arn:aws:rds:ap-northeast-1:dbclusterarn
      DBClusterIdentifier: http-endpoint-test
      DBClusterMembers: []
      DBClusterParameterGroup: default.aurora5.6
      DBSubnetGroup: default
      DbClusterResourceId: cluster-xxxx
      DeletionProtection: false
      DomainMemberships: []
      Endpoint: http-endpoint-test.xxxx.ap-northeast-1.rds.amazonaws.com
      Engine: aurora
      EngineMode: serverless
      EngineVersion: 5.6.10a
      HostedZoneId: xxxx
      HttpEndpointEnabled: false
      IAMDatabaseAuthenticationEnabled: false
      KmsKeyId: arn:aws:kms:ap-northeast-1:xxxx
      MasterUsername: xxxx
      MultiAZ: false
      Port: 3306
      PreferredBackupWindow: 00:00
      PreferredMaintenanceWindow: 00:00
      ReadReplicaIdentifiers: []
      ReaderEndpoint: http-endpoint-test.xxxx.ap-northeast-1.rds.amazonaws.com
      Status: creating
      StorageEncrypted: true
      TagList: []
      VpcSecurityGroups:
        - Status: active
          VpcSecurityGroupId: xxxx
    
    여기에서'DBCluster Arn:arn:aws:ap-northeast-1:dbclusterarn'은 뒤에서 사용하는 값이기 때문에 기록합니다.
    다음은 creds.json의 이름으로 어떤 json 파일을 만듭니까?
    creds.json
    {
        "username": "USERNAME",
        "password": "COMPLEX_PASSWORD"
    }
    
    그리고 시크릿을 만드는arn
    mac@pro appsyncTutorial % aws secretsmanager create-secret --name HttpRDSSecret --secret-string file://creds.json --region ap-northeast-1
    ARN: arn:aws:secretarn
    Name: HttpRDSSecret
    VersionId:xxxx
    

    데이터 API 활성화


    mac@pro mathmatev2 % aws rds modify-db-cluster \
        --db-cluster-identifier http-endpoint-test \
        --enable-http-endpoint
    DBCluster:
      ===省略===
      HttpEndpointEnabled: true
      ===省略終===
    

    데이터베이스 및 테이블 작성


    rds에 데이터베이스를 만듭니다.
    mac@pro appsyncTutorial % aws rds-data execute-statement --resource-arn "arn:aws:rds:ap-northeast-1:dbclusterarn" --schema "mysql"  --secret-arn "arn:aws:secretarn" \
     --region ap-northeast-1 --sql "create DATABASE TESTDB"
    generatedFields: []
    numberOfRecordsUpdated: 1
    
    양식을 만듭니다.
    mac@pro appsyncTutorial % aws rds-data execute-statement --resource-arn "arn:aws:rds:ap-northeast-1:dbclusterarn" --schema "mysql"  --secret-arn "arn:aws:secretarn" \
     --region ap-northeast-1 --sql "create table Pets(id varchar(200), type varchar(200), price float)" --database "TESTDB"
    generatedFields: []
    numberOfRecordsUpdated: 0
    
    값을 삽입하고 참조합니다.(※ 참고보도)
    mac@pro appsyncTutorial % aws rds-data execute-statement --resource-arn "arn:aws:rds:ap-northeast-1:dbclusterarn" --schema "mysql"  --secret-arn "arn:aws:secretarn" \
     --region ap-northeast-1 --sql "insert into Pets values (1,'TEST',100.52)" --database "TESTDB"
    generatedFields: []
    numberOfRecordsUpdated: 1
    
    mac@pro appsyncTutorial % aws rds-data execute-statement --resource-arn "arn:aws:rds:ap-northeast-1:dbclusterarn" --schema "mysql"  --secret-arn "arn:aws:secretarn" \
     --region ap-northeast-1 --sql "select * from Pets" --database "TESTDB"
    numberOfRecordsUpdated: 0
    records:
    - - stringValue: '1'
      - stringValue: TEST
      - doubleValue: 100.52
    

    GraphiQl 모드


    이동AppSync 콘솔
    왼쪽 메뉴에서 모드를 선택하고 다음 코드를 붙여넣으십시오.
    type Mutation {
      createPet(input: CreatePetInput!): Pet
      updatePet(input: UpdatePetInput!): Pet
      deletePet(input: DeletePetInput!): Pet
    }
    
    input CreatePetInput {
      type: PetType
      price: Float!
    }
    
    input UpdatePetInput {
      id: ID!
      type: PetType
      price: Float!
    }
    
    input DeletePetInput {
      id: ID!
    }
    
    type Pet {
      id: ID!
      type: PetType
      price: Float
    }
    
    enum PetType {
      dog
      cat
      fish
      bird
      gecko
    }
    
    type Query {
      getPet(id: ID!): Pet
      listPets: [Pet]
      listPetsByPriceRange(min: Float, max: Float): [Pet]
    }
    
    schema {
      query: Query
      mutation: Mutation
    }
    

    AppSync 데이터 소스


    왼쪽 메뉴에서 데이터 원본을 선택하고 데이터 원본을 만들고 사진처럼 편집합니다.
    appsync

    회전 변압기 이하


    별다른 문제가 발생하지 않았기 때문에tutorial을 참조하세요!
    https://docs.aws.amazon.com/ja_jp/appsync/latest/devguide/tutorial-rds-resolvers.html#configuring-resolvers
    참고 문장
    https://docs.aws.amazon.com/ja_jp/appsync/latest/devguide/tutorial-rds-resolvers.html
    https://dev.classmethod.jp/articles/aurora_serverless_now_supportsdataapi/

    좋은 웹페이지 즐겨찾기