Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat hibah data tentang AWS Data Exchange berisi APIs
Topik berikut menjelaskan proses pembuatan kumpulan data REST API dan menambahkannya ke hibah data yang berisi APIs on AWS Data Exchange. Anda dapat menyelesaikan proses dengan menggunakan AWS Data Exchange konsol atau AWS Command Line Interface.
Setelah menyiapkan API REST Amazon API Gateway, Anda dapat membuat kumpulan data API baru AWS Data Exchange. Anda kemudian dapat membuat revisi, dan menambahkan aset API.
Membuat hibah data dengan aset API memungkinkan permintaan penerima ke AWS Data Exchange titik akhir untuk diproxy melalui API Gateway API Anda.
Prosesnya memiliki langkah-langkah berikut:
Langkah-langkah
Prasyarat
Sebelum Anda dapat mempublikasikan produk yang mengandung APIs, Anda harus memenuhi prasyarat berikut:
-
Sebelum Anda dapat menggunakan apa pun Layanan AWS AWS Data Exchange, termasuk, Anda harus mendaftar AWS dan membuat pengguna administratif. Untuk informasi selengkapnya, lihat Memulai di Panduan AWS IAM Identity Center Pengguna.
-
REST API Anda harus berada di Amazon API Gateway dengan integrasi yang menggunakan model permintaan dan respons yang sesuai untuk mengakses data Anda, seperti Amazon DynamoDB atau. AWS Lambda Untuk informasi selengkapnya, lihat Mengembangkan REST API di API Gateway dan Bekerja dengan REST APIs di Panduan Pengembang Amazon API Gateway.
catatan
Hanya API Gateway publik APIs yang didukung.
-
API REST API Gateway Anda harus dapat mengautentikasi dan mengotorisasi panggilan dari prinsipal AWS Data Exchange layanan. Setiap permintaan dari API Anda AWS Data Exchange menggunakan protokol Signature Version 4 (SigV4) yang ditandatangani dengan AWS Data Exchange kredensil. AWS Data Exchange bekerja dengan domain khusus dan pemetaan kunci domain.
catatan
AWS Data Exchange tidak mendukung Amazon Cognito, No-Auth, dan otorisasi. AWS Lambda
-
Jika API Gateway REST API Anda menggunakan sistem identitas khusus untuk otentikasi dan otorisasi, konfigurasikan untuk menggunakan autentikasi IAM dan impor skema OpenAPI yang menjelaskan API Anda. AWS Data Exchange akan memanggil API Gateway REST API Anda dengan kredensi layanannya sendiri dan menyertakan informasi pelanggan seperti ID akun.
-
API Gateway REST API Anda bertanggung jawab untuk mengintegrasikan dengan backend Anda. Untuk melakukannya, lakukan salah satu hal berikut:
-
Lampirkan token otentikasi berumur panjang ke setiap permintaan yang datang melalui API Gateway REST API Anda yang dapat diverifikasi oleh backend.
-
Gunakan API Gateway untuk menjalankan fungsi Lambda yang dapat menghasilkan kredensil dan menjalankan API Anda.
-
API Anda dipanggil sesuai spesifikasi permintaan integrasi API.
Untuk informasi selengkapnya, lihat topik berikut.
Keamanan set data API
AWS Data Exchange mengenkripsi lalu lintas ujung ke ujung menggunakan Transport Layer Security (TLS) 1.2. Semua metadata dienkripsi saat istirahat. AWS Data Exchange tidak akan menyimpan permintaan pelanggan atau tanggapan dari backend Anda.
Spesifikasi permintaan integrasi API
API pada AWS Data Exchange melewati semua header (kecuali untuk header yang tercantum dalamPenerusan header), badan, metode http, jalur, dan string kueri apa adanya dari permintaan pelanggan dan menambahkan header berikut.
// These headers help prevent Confused Deputy attacks. They enable the SourceAccount // and SourceArn variables in IAM policies. 'x-amz-source-account': ACCOUNT_ID, 'x-amz-source-arn': `arn:aws:dataexchange:${REGION}:${OWNER_ACCOUNT_ID}:data-sets/${DATA_SET_ID}/revisions/${REVISION_ID}/assets/${ASSET_ID}`, // These headers identify the API Asset in Data Exchange. 'x-amzn-dataexchange-asset-id': ASSET_ID, 'x-amzn-dataexchange-data-set-id': DATA_SET_ID, 'x-amzn-dataexchange-revision-id': REVISION_ID, // This header identifies the Data Exchange Product. 'x-amzn-dataexchange-product-id': PRODUCT_ID, // This header identifies the caller of Data Exchange. It will contain subscriber // information. 'x-amzn-dataexchange-requester-account-id': REQUESTER_ACCOUNT_ID, // Providers can attach custom metadata in the form of key/value pairs // to a particular subscription. We will send these key/value pairs as stringified // JSON. 'x-amz-dataexchange-subscription-metadata': STRINGIFIED_METADATA,
Penerusan header
AWS Data Exchange menghapus header apa pun yang terkait dengan otentikasi atau namespaced ke Amazon sebelum meneruskannya ke backend pemilik data. Secara khusus, AWS Data Exchange menghapus:
-
Header
Authentication
-
Setiap header yang dimulai dengan
x-amz
host
Header akan ditimpa sebagai konsekuensi dari proxy.
Langkah 1: Perbarui kebijakan sumber daya API
Jika Anda memiliki API REST Amazon API Gateway yang memenuhi Prasyarat, Anda harus memperbarui kebijakan sumber daya API untuk memberikan AWS Data Exchange kemampuan untuk menjalankan API Anda saat pelanggan membuat permintaan untuk mendapatkan skema API Anda.
Untuk memperbarui kebijakan sumber daya API
-
Tambahkan kebijakan berikut ke kebijakan sumber daya API Anda:
{ "Effect": "Allow", "Principal": {"Service": "dataexchange.amazonaws.com"}, "Action": "execute-api:Invoke", "Resource": "*", "Condition": {"StringEquals": {"aws:SourceAccount": "<account-id>"}} }
-
Ganti
account-id
dengan akun yang akan membuat kumpulan data API.Akun dengan sumber daya API Gateway tidak perlu berada di akun yang sama yang membuat kumpulan data.
Kebijakan ini membatasi izin ini untuk panggilan yang dilakukan oleh prinsipal AWS Data Exchange layanan dan mengharuskan hanya akun Anda yang dapat mengotorisasi AWS Data Exchange untuk berintegrasi dengan API Anda.
catatan
Jika Anda memiliki kebijakan sumber daya yang secara eksplisit menolak AWS Data Exchange melakukan pemanggilan ini, Anda harus menghapus atau membatasi penolakan ini.
Anda sekarang siap untuk membuat kumpulan data API.
Langkah 2: Buat kumpulan data API
Kumpulan data AWS Data Exchange bersifat dinamis dan berversi menggunakan revisi, dengan setiap revisi berisi setidaknya satu aset. Untuk informasi selengkapnya, lihat Data di AWS Data Exchange.
Anda menggunakan AWS Data Exchange konsol atau AWS Command Line Interface untuk membuat kumpulan data API:
Membuat kumpulan data API (konsol)
Untuk membuat kumpulan data API (konsol)
-
Buka browser web Anda dan masuk ke AWS Data Exchange konsol
. -
Di panel navigasi sisi kiri, di bawah Data saya, pilih Kumpulan data yang dimiliki.
-
Di Kumpulan data yang dimiliki, pilih Buat kumpulan data untuk membuka panduan langkah pembuatan kumpulan data.
-
Di Pilih jenis kumpulan data, pilih Amazon API Gateway API.
-
Di Tentukan kumpulan data, masukkan Nama dan Deskripsi untuk kumpulan data Anda. Untuk informasi selengkapnya, lihat Praktik terbaik kumpulan data.
-
(Opsional) Di bawah Tambahkan tag - opsional, tambahkan tag.
-
Pilih Buat.
Anda sekarang siap untuk membuat revisi.
Membuat kumpulan data API (AWS CLI)
Untuk membuat kumpulan data API (CLI)
-
Gunakan
create-data-set
perintah untuk membuat kumpulan data API:$ AWS dataexchange create-data-set \ -\\-asset-type API_GATEWAY_API \ -\\-description 'Data Set Description' \ -\\-name 'Data Set Name' { "Arn": "arn:aws:dataexchange:us-east-1:123456789012:data-sets/$DATA_SET_ID", "AssetType": "API_GATEWAY_API", "CreatedAt": "2021-09-11T00:16:46.349000+00:00", "Description": "Data Set Description", "Id": "$DATA_SET_ID", "Name": "Data Set Name", "Origin": "OWNED", "UpdatedAt": "2021-09-11T00:16:46.349000+00:00" }
-
Perhatikan Jenis Aset baru dari
API_GATEWAY_API
.
Anda sekarang siap untuk membuat revisi.
Langkah 3: Buat revisi
Dalam prosedur berikut, Anda membuat revisi setelah Anda membuat kumpulan data. Untuk informasi selengkapnya, lihat Revisi.
Anda menggunakan AWS Data Exchange konsol atau AWS Command Line Interface untuk membuat revisi:
Membuat revisi (konsol)
Untuk membuat revisi (konsol)
-
Pada bagian Ikhtisar kumpulan data pada halaman detail kumpulan data:
-
(Opsional) Pilih Edit nama untuk mengedit informasi tentang kumpulan data Anda.
-
(Opsional) Pilih Hapus untuk menghapus kumpulan data.
-
-
Pada bagian Revisi, pilih Buat revisi.
-
Di bawah Tentukan revisi, berikan komentar opsional untuk revisi Anda yang menjelaskan tujuan revisi.
-
(Opsional) Di bawah Tambahkan tag - opsional, tambahkan tag yang terkait dengan sumber daya.
-
Pilih Buat revisi.
-
Tinjau, edit, atau hapus perubahan Anda dari langkah sebelumnya.
Anda sekarang siap untuk menambahkan aset API ke revisi.
Membuat revisi ()AWS CLI
Untuk membuat revisi ()AWS CLI
-
Gunakan
create-revision
perintah untuk membuat revisi:$ AWS dataexchange create-revision \ -\\-data-set-id $DATA_SET_ID \ -\\-comment 'First Atlas Revision' { "Arn": "arn:aws:dataexchange:us-east-1:123456789012:data-sets/$DATA_SET_ID/revisions/$REVISION_ID", "Comment": "First Atlas Revision", "CreatedAt": "2021-09-11T00:18:49.160000+00:00", "DataSetId": "$DATA_SET_ID", "Finalized": false, "Id": "$REVISION_ID", "UpdatedAt": "2021-09-11T00:18:49.160000+00:00" }
-
catatan
Anda perlu mengetahui ID API Gateway REST API yang ingin Anda impor serta tahapannya.
Langkah 4: Tambahkan aset API ke revisi
Aset API berisi informasi yang dibutuhkan pelanggan untuk melakukan panggilan ke API Anda. Untuk informasi selengkapnya, lihat Aset.
Dalam prosedur berikut, Anda mengimpor aset data, dan kemudian menyelesaikan revisi.
Anda menggunakan AWS Data Exchange konsol atau AWS CLI untuk menambahkan aset ke revisi:
Menambahkan aset API ke revisi (konsol)
Untuk menambahkan aset ke revisi (konsol)
-
Di bagian aset API pada halaman detail kumpulan data, pilih Tambahkan tahap API.
-
Pada tahap Pilih API, untuk Amazon API Gateway API, masukkan API di kotak input atau pilih salah satu dari berikut ini dari daftar drop-down:
-
API di yang lain Akun AWS - ini adalah API lintas akun yang telah diberikan izin untuk Anda akses.
-
Dalam hal ini Akun AWS - ini adalah API di Anda Akun AWS.
-
Jika Anda memilih API di yang lain Akun AWS, masukkan ID API dan nama API Stage di kotak input.
-
Jika Anda memilih Dalam hal ini Akun AWS, pilih nama API Stage dari daftar drop-down
catatan
Anda dapat membuat tahap API baru dengan memilih Create new dan mengikuti langkah-langkah dalam modal Create new API di Amazon API Gateway. Setelah tahap baru dibuat, ulangi Langkah 2.
-
-
Di bawah Konfigurasi lanjutan — opsional, Anda dapat memilih untuk Menyambungkan paket penggunaan Amazon API Gateway yang ada untuk menggunakan pembatasan dan batas kuota seperti yang ditentukan dalam paket penggunaan yang ada, dan memasukkan kunci API.
-
Di bawah API Dokumen untuk pelanggan, berikan detail tentang API yang akan dilihat penerima setelah mereka menerima hibah data.
-
Untuk nama API, masukkan nama yang dapat digunakan penerima untuk mengidentifikasi aset API.
catatan
Jika Dalam ini Akun AWS dipilih, nama API secara otomatis diisi, yang dapat Anda modifikasi jika perlu.
Jika API di yang lain Akun AWS dipilih, nama API diisi dengan nama default, yang harus Anda modifikasi sehingga penerima dapat dengan mudah memahami apa itu.
-
Untuk spesifikasi OpenAPI 3.0, baik:
-
Masukkan atau salin dan tempel file spesifikasi OpenAPI 3.0.
-
Pilih Impor dari file.JSON, lalu pilih file.json dari komputer lokal Anda untuk diimpor.
Spesifikasi yang diimpor muncul di kotak.
-
Pilih Impor dari Amazon API Gateway, lalu pilih spesifikasi yang akan diimpor.
Spesifikasi yang diimpor muncul di kotak.
-
-
Untuk Dokumentasi tambahan - opsional, masukkan informasi tambahan apa pun yang berguna bagi pelanggan untuk mengetahui tentang API Anda. Markdown didukung.
catatan
Anda tidak dapat mengedit spesifikasi OpenAPI dan dokumentasi tambahan setelah menambahkan aset ini ke revisi.
Jika Anda ingin memperbarui informasi ini, dan revisi belum selesai, Anda dapat mengganti aset.
Jika Anda ingin memperbarui informasi ini, dan revisi selesai, Anda dapat membuat revisi baru dengan aset yang diperbarui.
-
-
Pilih tahap Add API.
Pekerjaan dimulai untuk mengimpor aset Anda (dalam hal ini, API) ke kumpulan data Anda.
catatan
Jika Anda tidak memiliki API di Amazon API Gateway, Anda akan diminta untuk membuatnya.
-
Setelah pekerjaan selesai, bidang Negara bagian di bagian Pekerjaan diperbarui ke Selesai.
-
Jika Anda memiliki lebih banyak APIs untuk ditambahkan, ulangi Langkah 2.
-
Di bawah ikhtisar Revisi, tinjau revisi Anda dan asetnya.
-
Pilih Finalisasi.
Anda telah berhasil menyelesaikan revisi untuk kumpulan data.
Anda dapat mengedit revisi atau menghapus revisi sebelum menambahkannya ke hibah data.
Anda sekarang siap untuk Membuat hibah data baru yang berisi APIs.
Menambahkan aset API ke revisi ()AWS CLI
Anda dapat menambahkan aset API dengan menjalankan IMPORT_ASSET_FROM_API_GATEWAY_API
pekerjaan.
Untuk menambahkan aset API ke revisi (AWS CLI):
-
Gunakan
create-job
perintah untuk menambahkan aset API ke revisi:$ AWS dataexchange create-job \ -\\-type IMPORT_ASSET_FROM_API_GATEWAY_API \ -\\-details '{"ImportAssetFromApiGatewayApi":{"DataSetId":"$DATA_SET_ID","RevisionId":"$REVISION_ID","ApiId":"$API_ID","Stage":"$API_STAGE","ProtocolType":"REST"}}' { "Arn": "arn:aws:dataexchange:us-east-1:123456789012:jobs/$JOB_ID", "CreatedAt": "2021-09-11T00:38:19.875000+00:00", "Details": { "ImportAssetFromApiGatewayApi": { "ApiId": "$API_ID", "DataSetId": "$DATA_SET_ID", "ProtocolType": "REST", "RevisionId": "$REVISION_ID", "Stage": "$API_STAGE" } }, "Id": "$JOB_ID", "State": "WAITING", "Type": "IMPORT_ASSET_FROM_API_GATEWAY_API", "UpdatedAt": "2021-09-11T00:38:19.875000+00:00" } $ AWS dataexchange start-job -\\-job-id $JOB_ID $ AWS dataexchange get-job -\\-job-id $JOB_ID { "Arn": "arn:aws:dataexchange:us-east-1:0123456789012:jobs/$JOB_ID", "CreatedAt": "2021-09-11T00:38:19.875000+00:00", "Details": { "ImportAssetFromApiGatewayApi": { "ApiId": "$API_ID", "DataSetId": "$DATA_SET_ID", "ProtocolType": "REST", "RevisionId": "$REVISION_ID", "Stage": "$API_STAGE" "ApiEndpoint": "string", "ApiKey": "string", "ApiName": "string", "ApiDescription": "string", "ApiSpecificationDownloadUrl": "string", "ApiSpecificationDownloadUrlExpiresAt": "string" } }, "Id": "$JOB_ID", "State": "COMPLETED", "Type": "IMPORT_ASSET_FROM_API_GATEWAY_API", "UpdatedAt": "2021-09-11T00:38:52.538000+00:00" }
-
Gunakan
list-revision-assets
perintah untuk mengonfirmasi bahwa aset baru dibuat dengan benar:$ AWS dataexchange list-revision-assets \ -\\-data-set-id $DATA_SET_ID \ -\\-revision-id $REVISION_ID { "Assets": [ { "Arn": "arn:aws:dataexchange:us-east-1:123456789012:data-sets/$DATA_SET_ID/revisions/$REVISION_ID/assets/$ASSET_ID", "AssetDetails": { "ApiGatewayApiAsset": { "ApiEndpoint": "https://$API_ID.execute-api.us-east-1.amazonaws.com/$API_STAGE", "ApiId": "$API_ID", "ProtocolType": "REST", "Stage": "$API_STAGE" } }, "AssetType": "API_GATEWAY_API", "CreatedAt": "2021-09-11T00:38:52.457000+00:00", "DataSetId": "$DATA_SET_ID", "Id": "$ASSET_ID", "Name": "$ASSET_ID/$API_STAGE", "RevisionId": "$REVISION_ID", "UpdatedAt": "2021-09-11T00:38:52.457000+00:00" } ] }
Anda sekarang siap untuk membuat hibah data baru yang berisi APIs.
Mengedit revisi
Untuk mengedit revisi setelah Anda menyelesaikannya
-
Pada ikhtisar Revisi, pilih De-finalize.
Anda melihat pesan bahwa revisi tidak lagi dalam keadaan final.
-
Untuk mengedit revisi, dari ikhtisar Revisi, pilih Tindakan, Edit.
-
Buat perubahan Anda, lalu pilih Perbarui.
-
Tinjau perubahan Anda dan kemudian pilih Finalize.
Hapus revisi
Untuk menghapus revisi setelah Anda menyelesaikannya
-
Pada ikhtisar Revisi, pilih Hapus.
-
Ketik
Delete
kotak dialog Hapus revisi, lalu pilih Hapus.
Awas
Ini menghapus revisi dan semua asetnya. Tindakan ini tidak dapat dibatalkan.
Langkah 5: Buat hibah data baru yang berisi APIs
Setelah membuat setidaknya satu kumpulan data dan menyelesaikan revisi dengan aset, Anda siap mempublikasikan kumpulan data tersebut sebagai bagian dari hibah data.
Untuk membuat hibah data baru
-
Di panel navigasi kiri AWS Data Exchange konsol, di bawah Hibah data yang dipertukarkan, pilih Hibah data terkirim.
-
Dari Hibah data terkirim, pilih Buat hibah data untuk membuka panduan Tentukan hibah data.
-
Di bagian Pilih kumpulan data yang dimiliki, pilih kotak centang di sebelah kumpulan data yang ingin Anda tambahkan.
catatan
Kumpulan data yang Anda pilih harus memiliki revisi yang diselesaikan. Kumpulan data tanpa revisi akhir tidak dapat ditambahkan ke hibah data.
Tidak seperti kumpulan data yang disertakan dalam produk data yang dibagikan AWS Marketplace, kumpulan data yang ditambahkan ke hibah data tidak memiliki aturan akses revisi, yang berarti penerima hibah data, setelah hibah data disetujui, akan memiliki akses ke semua revisi akhir dari kumpulan data yang diberikan (termasuk revisi historis yang diselesaikan sebelum pembuatan hibah data).
-
Di bagian Ikhtisar hibah, masukkan informasi yang akan dilihat penerima mengenai pemberian data Anda, termasuk nama hibah Data, dan deskripsi hibah data.
-
Pilih Berikutnya.
-
Di bagian Informasi akses Penerima, di bawah Akun AWS ID, masukkan Akun AWS ID akun penerima yang harus menerima hibah data.
-
Juga, di bagian Informasi akses penerima, di bawah Tanggal akhir akses, pilih apakah hibah data harus berjalan selamanya, pilih Tidak ada tanggal akhir, atau jika harus memiliki tanggal akhir, memilih tanggal akhir tertentu, dan memilih tanggal akhir yang diinginkan.
-
Pilih Berikutnya.
-
Di bagian Tinjau dan kirim, tinjau informasi pemberian data Anda.
-
Jika Anda yakin ingin membuat hibah data dan mengirimkannya ke penerima yang dipilih, pilih Buat dan kirim data hibah.
Anda sekarang telah menyelesaikan bagian manual untuk membuat hibah data. Pemberian data muncul di tab Hibah data terkirim di halaman Hibah data terkirim, dengan status Penerimaan tertunda hingga akun penerima menerimanya.