View a markdown version of this page

Membangun GraphQL API dengan introspeksi RDS - AWS AppSync GraphQL

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membangun GraphQL API dengan introspeksi RDS

AWS AppSync utilitas introspeksi dapat menemukan model dari tabel database dan mengusulkan jenis GraphQL. Wizard Create API AWS AppSync konsol dapat langsung menghasilkan API dari database Aurora MySQL atau PostgreSQL. Secara otomatis membuat tipe dan JavaScript resolver untuk membaca dan menulis data.

AWS AppSync menyediakan integrasi langsung dengan database Amazon Aurora melalui Amazon RDS Data API. Alih-alih memerlukan koneksi database persisten, Amazon RDS Data API menawarkan titik akhir HTTP aman yang AWS AppSync terhubung untuk menjalankan SQL pernyataan. Anda dapat menggunakan ini untuk membuat API database relasional untuk beban kerja MySQL dan PostgreSQL Anda di Aurora.

Membangun API untuk database relasional Anda AWS AppSync memiliki beberapa keuntungan:

  • Database Anda tidak langsung diekspos ke klien, memisahkan titik akses dari database itu sendiri.

  • Anda dapat membangun API yang dibuat khusus yang disesuaikan dengan kebutuhan aplikasi yang berbeda, menghilangkan kebutuhan akan logika bisnis khusus di frontend. Ini selaras dengan pola Backend-For-Frontend (BFF).

  • Otorisasi dan kontrol akses dapat diimplementasikan pada AWS AppSync lapisan menggunakan berbagai mode otorisasi untuk mengontrol akses. Tidak ada sumber daya komputasi tambahan yang diperlukan untuk terhubung ke database, seperti hosting server web atau koneksi proxy.

  • Real-time kemampuan dapat ditambahkan melalui langganan, dengan mutasi data yang dibuat AppSync secara otomatis didorong ke klien yang terhubung.

  • Klien dapat terhubung ke API melalui HTTPS menggunakan port umum seperti 443.

AWS AppSync membuat pembuatan API dari database relasional yang ada menjadi mudah. Utilitas introspeksinya dapat menemukan model dari tabel database dan mengusulkan jenis GraphQL. Wizard Create API AWS AppSync konsol dapat langsung menghasilkan API dari database Aurora MySQL atau PostgreSQL. Secara otomatis membuat tipe dan JavaScript resolver untuk membaca dan menulis data.

AWS AppSync menyediakan JavaScript utilitas terintegrasi untuk menyederhanakan penulisan pernyataan SQL di resolver. Anda dapat menggunakan AWS AppSync template sql tag untuk pernyataan statis dengan nilai dinamis, atau utilitas rds modul untuk membuat pernyataan secara terprogram. Lihat referensi fungsi resolver untuk sumber data RDS dan modul bawaan untuk informasi lebih lanjut.

Menggunakan fitur introspeksi (konsol)

Untuk tutorial terperinci dan panduan memulai, lihat Tutorial: Aurora PostgreSQL Serverless with Data API.

Kon AWS AppSync sol memungkinkan Anda membuat AWS AppSync GraphQL API dari database Aurora yang ada yang dikonfigurasi dengan API Data hanya dalam beberapa menit. Ini dengan cepat menghasilkan skema operasional berdasarkan konfigurasi database Anda. Anda dapat menggunakan API apa adanya atau membangunnya untuk menambahkan fitur.

  1. Masuk ke Konsol Manajemen AWS dan buka AppSync konsol.

    1. Di Dasbor, pilih Buat API.

  2. Di bawah opsi API, pilih GraphQL API, Mulai dengan cluster Amazon Aurora, lalu Ber ikutnya.

    1. Masukkan nama API. Ini akan digunakan sebagai pengidentifikasi untuk API di konsol.

    2. Untuk detail kontak, Anda dapat memasukkan titik kontak untuk mengidentifikasi manajer untuk API. Ini adalah bidang opsional.

    3. Di bawah konfigurasi API pribadi, Anda dapat mengaktifkan fitur API pribadi. API pribadi hanya dapat diakses dari titik akhir VPC (VPCE) yang dikonfigurasi. Untuk informasi selengkapnya, lihat API pribadi.

      Kami tidak menyarankan untuk mengaktifkan fitur ini untuk contoh ini. Pilih Berikutnya setelah meninjau input Anda.

  3. Di halaman Database, pilih Pilih database.

    1. Anda perlu memilih database Anda dari cluster Anda. Langkah pertama adalah memilih Wil ayah di mana cluster Anda ada.

    2. Pilih cluster Aurora dari daftar drop-down. Perhatikan bahwa Anda harus membuat dan mengaktifkan API data yang sesuai sebelum menggunakan sumber daya.

    3. Selanjutnya, Anda harus menambahkan kredenSIAL untuk database Anda ke layanan. Ini terutama dilakukan dengan menggunakan AWS Secrets Manager. Pilih Wil ayah di mana rahasia Anda ada. Untuk informasi selengkapnya tentang cara mengambil informasi rahasia, lihat M enemukan rahasia atau Mengambil rahasia.

    4. Tambahkan rahasia Anda dari daftar drop-down. Perhatikan bahwa pengguna harus memiliki izin baca untuk database Anda.

  4. Pilih Impor.

    AWS AppSync akan mulai mengintrospeksi database Anda, menemukan tabel, kolom, kunci utama, dan indeks. Ini memeriksa bahwa tabel yang ditemukan dapat didukung di GraphQL API. Perhatikan bahwa untuk mendukung pembuatan baris baru, tabel memerlukan kunci utama, yang dapat menggunakan beberapa kolom. AWS AppSync memetakan kolom tabel untuk mengetik bidang sebagai berikut:

    Jenis data Jenis bidang
    VARCHAR String
    CHAR String
    BINARY String
    VARBINARY String
    TINYBLOB String
    TINYTEXT String
    TEXT String
    BLOB String
    MEDIUMTEXT String
    MEDIUMBLOB String
    LONGTEXT String
    LONGBLOB String
    BOOL Boolean
    BOOLEAN Boolean
    BIT Int
    TINYINT Int
    SMALLINT Int
    MEDIUMINT Int
    INT Int
    BILANGAN BULAT Int
    BIGINT Int
    YEAR Int
    FLOAT Desimal
    DOUBLE Desimal
    DECIMAL Desimal
    DEC Desimal
    NUMERIC Desimal
    DATE AwsTanggal
    TIMESTAMP String
    DATETIME String
    TIME AwsTime
    JSON AwsJson
    ENUM ENUM
  5. Setelah penemuan tabel selesai, bagian Database akan diisi dengan informasi Anda. Di bagian tabel Database baru, data dari tabel mungkin sudah diisi dan dikonversi ke tipe untuk skema Anda. Jika Anda tidak melihat beberapa data yang diperlukan, Anda dapat memeriksanya dengan memilih Tambahkan tabel, mengklik kotak centang untuk jenis tersebut dalam modal yang muncul, lalu pilih Tam bah.

    Untuk menghapus jenis dari bagian Tabel database, klik kotak centang di sebelah jenis yang ingin Anda hapus, lalu pilih H apus. Jenis yang dihapus akan ditempatkan di modal Tam bah tabel jika Anda ingin menambahkannya lagi nanti.

    Perhatikan bahwa AWS AppSync menggunakan nama tabel sebagai nama tipe, tetapi Anda dapat mengganti namanya - misalnya, mengubah nama tabel jamak seperti movies nama Movie tipe. Untuk mengganti nama tipe di bagian Tabel database, klik pada kotak centang dari jenis yang ingin Anda ganti nama, lalu klik ikon pen sil di kolom Jenis nama.

    Untuk melihat pratinjau konten skema berdasarkan pilihan Anda, pilih Prat injau skema. Perhatikan bahwa skema ini tidak boleh kosong, jadi Anda harus memiliki setidaknya satu tabel yang dikonversi ke tipe. Juga, skema ini tidak boleh melebihi ukuran 1 MB.

    1. Di bawah Peran layanan, pilih apakah akan membuat peran layanan baru khusus untuk impor ini atau menggunakan peran yang sudah ada.

  6. Pilih Berikutnya.

  7. Selanjutnya, pilih apakah akan membuat API read-only (query saja) atau API untuk membaca dan menulis data (dengan kueri dan mutasi). Yang terakhir ini juga mendukung langganan real-time yang dipicu oleh mutasi.

  8. Pilih Berikutnya.

  9. Tinjau pilihan Anda dan kemudian pilih Buat API. AWS AppSync akan membuat API dan melampirkan resolver ke kueri dan mutasi. API yang dihasilkan beroperasi penuh dan dapat diperpanjang sesuai kebutuhan.

Menggunakan fitur introspeksi (API)

Anda dapat menggunakan API StartDataSourceIntrospection introspeksi untuk menemukan model dalam database Anda secara terprogram. Untuk detail selengkapnya tentang perintah, lihat menggunakan StartDataSourceIntrospection API.

Untuk menggunakanStartDataSourceIntrospection, berikan nama Amazon Resource Name (ARN) cluster Aurora Anda, nama database, dan ARN AWS Secrets Manager rahasia. Perintah memulai proses introspeksi. Anda dapat mengambil hasilnya dengan GetDataSourceIntrospection perintah. Anda dapat menentukan apakah perintah harus mengembalikan string Storage Definition Language (SDL) untuk model yang ditemukan. Ini berguna untuk menghasilkan definisi skema SDL langsung dari model yang ditemukan.

Misalnya, jika Anda memiliki pernyataan bahasa definisi data (DDL) berikut untuk Todos tabel sederhana:

create table if not exists public.todos ( id serial constraint todos_pk primary key, description text, due timestamp, "createdAt" timestamp default now() );

Anda memulai introspeksi dengan yang berikut ini.

aws appsync start-data-source-introspection \ --rds-data-api-config resourceArn=<cluster-arn>,secretArn=<secret-arn>,databaseName=database

Selanjutnya, gunakan GetDataSourceIntrospection perintah untuk mengambil hasilnya.

aws appsync get-data-source-introspection \ --introspection-id a1234567-8910-abcd-efgh-identifier \ --include-models-sdl

Ini mengembalikan hasil berikut.

{ "introspectionId": "a1234567-8910-abcd-efgh-identifier", "introspectionStatus": "SUCCESS", "introspectionStatusDetail": null, "introspectionResult": { "models": [ { "name": "todos", "fields": [ { "name": "description", "type": { "kind": "Scalar", "name": "String", "type": null, "values": null }, "length": 0 }, { "name": "due", "type": { "kind": "Scalar", "name": "AWSDateTime", "type": null, "values": null }, "length": 0 }, { "name": "id", "type": { "kind": "NonNull", "name": null, "type": { "kind": "Scalar", "name": "Int", "type": null, "values": null }, "values": null }, "length": 0 }, { "name": "createdAt", "type": { "kind": "Scalar", "name": "AWSDateTime", "type": null, "values": null }, "length": 0 } ], "primaryKey": { "name": "PRIMARY_KEY", "fields": [ "id" ] }, "indexes": [], "sdl": "type todos\n{\ndescription: String\n\ndue: AWSDateTime\n\nid: Int!\n\ncreatedAt: AW SDateTime\n}\n" } ], "nextToken": null } }