Tutorial: Buat REST API dengan AWS integrasi - APIGerbang Amazon

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

Tutorial: Buat REST API dengan AWS integrasi

Baik Tutorial: Buat REST API dengan integrasi non-proxy Lambda topik Tutorial: Buat REST API dengan integrasi proxy Lambda maupun topik menjelaskan cara membuat API Gateway API untuk mengekspos fungsi Lambda terintegrasi. Selain itu, Anda dapat membuat API Gateway API untuk mengekspos AWS layanan lain, seperti Amazon SNS, Amazon S3, Amazon Kinesis, dan bahkan. AWS Lambda Hal ini dimungkinkan oleh AWS integrasi. Integrasi Lambda atau integrasi proxy Lambda adalah kasus khusus, di mana pemanggilan fungsi Lambda diekspos melalui API Gateway API.

Semua AWS layanan mendukung API khusus untuk mengekspos fitur-fiturnya. Namun, protokol aplikasi atau antarmuka pemrograman cenderung berbeda dari layanan ke layanan. API Gateway API dengan AWS integrasi memiliki keuntungan menyediakan protokol aplikasi yang konsisten bagi klien Anda untuk mengakses berbagai AWS layanan.

Dalam panduan ini, kami membuat API untuk mengekspos Amazon SNS. Untuk contoh lebih lanjut tentang mengintegrasikan API dengan AWS layanan lain, lihatTutorial dan lokakarya Amazon API Gateway.

Berbeda dengan integrasi proxy Lambda, tidak ada integrasi proxy yang sesuai untuk layanan lain AWS . Oleh karena itu, metode API terintegrasi dengan satu AWS tindakan. Untuk fleksibilitas lebih, mirip dengan integrasi proxy, Anda dapat mengatur integrasi proxy Lambda. Fungsi Lambda kemudian mem-parsing dan memproses permintaan untuk tindakan lain. AWS

API Gateway tidak mencoba lagi saat titik akhir habis. Pemanggil API harus menerapkan logika coba lagi untuk menangani batas waktu titik akhir.

Panduan ini dibangun di atas instruksi dan konsep di. Tutorial: Buat REST API dengan integrasi non-proxy Lambda Jika Anda belum menyelesaikan panduan itu, kami sarankan Anda melakukannya terlebih dahulu.

Prasyarat

Sebelum memulai panduan ini, lakukan hal berikut:

  1. Selesaikan langkah-langkah dalam Siapkan untuk menggunakan API Gateway.

  2. Buat API baru bernamaMyDemoAPI. Untuk informasi selengkapnya, lihat Tutorial: Buat REST API dengan integrasi HTTP non-proxy.

  3. Terapkan API setidaknya sekali ke tahap bernamatest. Untuk informasi selengkapnya, lihat Menerapkan API diPilih tutorial AWS Lambda integrasi.

  4. Selesaikan langkah-langkah lainnyaPilih tutorial AWS Lambda integrasi.

  5. Buat setidaknya satu topik di Amazon Simple Notification Service (Amazon SNS). Anda akan menggunakan API yang diterapkan untuk mendapatkan daftar topik di Amazon SNS yang terkait dengan AWS akun Anda. Untuk mempelajari cara membuat topik di Amazon SNS, lihat Membuat Topik. (Anda tidak perlu menyalin topik ARN yang disebutkan di langkah 5.)

Langkah 1: Buat peran eksekusi proxy AWS layanan

Untuk mengizinkan API menjalankan tindakan Amazon SNS, Anda harus memiliki kebijakan IAM yang sesuai yang dilampirkan ke peran IAM.

Untuk membuat peran eksekusi proxy AWS layanan
  1. Masuk ke AWS Management Console dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Pilih Peran.

  3. Pilih Buat peran.

  4. Pilih AWS layanan di bawah Pilih jenis entitas tepercaya, lalu pilih API Gateway dan pilih Izinkan API Gateway untuk mendorong CloudWatch log ke Log.

  5. Pilih Berikutnya, lalu pilih Berikutnya.

  6. Untuk nama PeranAPIGatewaySNSProxyPolicy, masukkan, lalu pilih Buat peran.

  7. Dalam daftar Peran, pilih peran yang baru saja Anda buat. Anda mungkin perlu menggulir atau menggunakan bilah pencarian untuk menemukan peran.

  8. Untuk peran yang dipilih, pilih tab Tambahkan izin.

  9. Pilih Lampirkan kebijakan dari daftar dropdown.

  10. Di bilah pencarian, masukkan AmazonSNSReadOnlyAccess dan pilih Tambahkan izin.

    catatan

    Tutorial ini menggunakan kebijakan terkelola untuk kesederhanaan. Sebagai praktik terbaik, Anda harus membuat kebijakan IAM Anda sendiri untuk memberikan izin minimum yang diperlukan.

  11. Perhatikan ARN Peran yang baru dibuat, Anda akan menggunakannya nanti.

Langkah 2: Buat sumber daya

Pada langkah ini, Anda membuat sumber daya yang memungkinkan proxy AWS layanan berinteraksi dengan AWS layanan.

Untuk membuat sumber daya
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih API Anda.

  3. Pilih sumber daya root,/, yang diwakili oleh satu garis miring (/), lalu pilih Buat sumber daya.

  4. Matikan sumber daya Proxy.

  5. Pertahankan jalur Sumber Daya sebagai/.

  6. Untuk Nama sumber daya, masukkan mydemoawsproxy.

  7. Tetap nonaktifkan CORS (Cross Origin Resource Sharing).

  8. Pilih Buat sumber daya.

Langkah 3: Buat metode GET

Pada langkah ini, Anda membuat metode GET yang memungkinkan proxy AWS layanan berinteraksi dengan AWS layanan.

Untuk membuat GET metode
  1. Pilih sumber daya /mydemoawsproxy, lalu pilih Create method.

  2. Untuk jenis metode, pilih GET.

  3. Untuk jenis Integrasi, pilih AWS layanan.

  4. Untuk Wilayah AWS, pilih Wilayah AWS tempat Anda membuat topik Amazon SNS Anda.

  5. Untuk AWS layanan, pilih Amazon SNS.

  6. Biarkan AWS subdomain kosong.

  7. Untuk metode HTTP, pilih GET.

  8. Untuk jenis tindakan, pilih Gunakan nama tindakan.

  9. Untuk nama Action, masukkanListTopics.

  10. Untuk peran Eksekusi, masukkan peran ARN untuk. APIGatewaySNSProxyPolicy

  11. Pilih metode Buat.

Langkah 4: Tentukan pengaturan metode dan uji metodenya

Anda sekarang dapat menguji GET metode Anda untuk memverifikasi bahwa metode tersebut telah diatur dengan benar untuk mencantumkan topik Amazon SNS Anda.

Untuk menguji GET metode
  1. Pilih tab Uji. Anda mungkin perlu memilih tombol panah kanan untuk menampilkan tab.

  2. Pilih Uji.

    Hasilnya menampilkan respon yang mirip dengan berikut ini:

    { "ListTopicsResponse": { "ListTopicsResult": { "NextToken": null, "Topics": [ { "TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-1" }, { "TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-2" }, ... { "TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-N" } ] }, "ResponseMetadata": { "RequestId": "abc1de23-45fa-6789-b0c1-d2e345fa6b78" } } }

Langkah 5: Menerapkan API

Pada langkah ini, Anda menerapkan API sehingga Anda dapat memanggilnya dari luar konsol API Gateway.

Untuk menerapkan API
  1. Pilih Deploy API.

  2. Untuk Stage, pilih New stage.

  3. Untuk nama Panggung, masukkantest.

  4. (Opsional) Untuk Deskripsi, masukkan deskripsi.

  5. Pilih Deploy.

Langkah 6: Uji API

Pada langkah ini, Anda pergi ke luar konsol API Gateway dan menggunakan proxy AWS layanan Anda untuk berinteraksi dengan layanan Amazon SNS.

  1. Di panel navigasi utama, pilih Stage.

  2. Di bawah Detail tahap, pilih ikon salin untuk menyalin URL pemanggilan API Anda.

    Seharusnya terlihat seperti ini:

    https://my-api-id.execute-api.region-id.amazonaws.com/test
  3. Masukkan URL ke dalam kotak alamat tab browser baru.

  4. Tambahkan /mydemoawsproxy sehingga URL terlihat seperti ini:

    https://my-api-id.execute-api.region-id.amazonaws.com/test/mydemoawsproxy

    Jelajahi URL. Informasi yang mirip dengan berikut ini harus ditampilkan:

    {"ListTopicsResponse":{"ListTopicsResult":{"NextToken": null,"Topics":[{"TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-1"},{"TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-2"},...{"TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-N}]},"ResponseMetadata":{"RequestId":"abc1de23-45fa-6789-b0c1-d2e345fa6b78}}}

Langkah 7: Bersihkan

Anda dapat menghapus sumber daya IAM yang diperlukan proxy AWS layanan untuk bekerja.

Awas

Jika Anda menghapus sumber daya IAM yang diandalkan oleh proxy AWS layanan, proxy AWS layanan tersebut dan API apa pun yang mengandalkannya tidak akan berfungsi lagi. Menghapus sumber daya IAM tidak dapat dibatalkan. Jika Anda ingin menggunakan sumber daya IAM lagi, Anda harus membuatnya kembali.

Untuk menghapus sumber daya IAM terkait
  1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di area Detail, pilih Peran.

  3. Pilih ApiGateway AWSProxyExecRole, lalu pilih Tindakan Peran, Hapus Peran. Saat diminta, pilih Ya, Hapus.

  4. Di area Detail, pilih Kebijakan.

  5. Pilih ApiGateway AWSProxyExecPolicy, lalu pilih Tindakan Kebijakan, Hapus. Saat diminta, pilih Hapus.

Anda telah mencapai akhir dari panduan ini. Untuk diskusi lebih rinci tentang membuat API sebagai proxy AWS layanan, lihatTutorial: Buat REST API proxy Amazon S3 sebagai,Tutorial: Buat REST API kalkulator dengan dua integrasi AWS layanan dan satu integrasi non-proxy Lambda, atauTutorial: Buat REST API sebagai proxy Amazon Kinesis.