Antipola migrasi Apigee Edge ke Apigee X

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Sebagai pelanggan Apigee Edge saat ini, Anda dapat memilih untuk memigrasikan penginstalan ke Apigee X, untuk memanfaatkan kemampuan baru, atau ketersediaan regional yang berbeda.

Halaman ini menjelaskan antipola dalam konfigurasi yang perlu Anda atasi sebelum bermigrasi ke Apigee X, serta perubahan perilaku lainnya yang harus Anda ketahui sebelum bermigrasi.

Daftar yang lebih luas tentang antipattern Apigee Edge menjelaskan praktik penggunaan yang harus dihindari dalam kasus apa pun. Halaman ini menjelaskan praktik penggunaan yang tidak direkomendasikan secara khusus yang akan memblokir migrasi. Selesaikan masalah ini sekarang untuk mencegah masalah saat bermigrasi ke Apigee X.

Aplikasi tanpa produk API

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Ada aplikasi tanpa produk API.

Perbedaan antara Apigee Edge dan Apigee X:

Apigee Edge Apigee X
Anda dapat mengonfigurasi aplikasi dan kredensial yang tidak terkait dengan Produk API mana pun. Aplikasi ini secara efektif memiliki akses ke semua Produk API. Setiap aplikasi harus dikonfigurasi untuk mengakses setidaknya satu Produk API. Tidak ada cara untuk memberikan akses ke semua Produk API secara implisit. Anda dapat mengonfigurasi aplikasi agar memiliki akses ke semua Produk API, tetapi Anda harus melakukannya secara eksplisit.
Tidak.

Resolusi: Aplikasi tanpa produk API

Kaitkan setiap kredensial aplikasi dengan setidaknya satu produk API. Untuk mengetahui informasi selengkapnya tentang cara melakukannya, lihat Mendaftarkan aplikasi dan mengelola kunci API.

Cara mudahnya adalah dengan memberikan akses setiap aplikasi ke semua Produk API. Hal ini akan setara dengan apa yang dapat dilakukan di Apigee Edge. Tantangannya adalah jika Anda ingin menerapkan pendekatan "hak istimewa terendah", Anda harus menentukan daftar minimum Produk API yang harus diakses oleh setiap kredensial aplikasi. Anda dapat menganalisisnya dengan laporan Analisis Apigee Edge, berdasarkan ID klien.

Cache tanpa waktu habis masa berlaku

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Cache tidak memiliki waktu habis masa berlaku.

Perbedaan antara Apigee Edge dan Apigee X:

Apigee Edge Apigee X
Mendukung pembuatan, pembaruan, dan penghapusan deskriptor resource cache. Tidak mendukung pembuatan, pembaruan, atau penghapusan deskriptor resource cache.
Tidak

Resolusi: Cache tanpa waktu habis masa berlaku

Menetapkan waktu habis masa berlaku untuk semua cache.

Ekspresi filter JSONPath pada jalur non-pasti

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Untuk jalur yang tidak pasti, mengkueri hasil ekspresi filter bukan bagian dari spesifikasi JSONPath. Lihat https://goessner.net/articles/JsonPath/.

Perbedaan antara Apigee Edge dan Apigee X:

Saat menavigasi struktur contoh ini,

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

Dengan ekspresi $..books[?(@.name == 'A')][0],

Apigee Edge Apigee X
Output ‘{"name": "A"}’ Output []

Dengan ekspresi $..books[?(@.name == 'A')][0].name,

Apigee Edge Apigee X
Output "A" Output []
Ya

Resolusi: Ekspresi filter JSONPath pada jalur non-pasti

Menemukan dan mengganti kueri yang terpengaruh.

Ekspresi JSONPath untuk indeks yang tidak ada

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Ekspresi JSONPath dengan indeks yang tidak ada memiliki perilaku yang berbeda di Apigee X dibandingkan Apigee Edge. Apigee X menampilkan error PathNotFoundException jika jalur tidak ditemukan.

Perbedaan antara Apigee Edge dan Apigee X:

Saat menavigasi struktur contoh ini,

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

Dengan ekspresi $.books[3],

Apigee Edge Apigee X
Output null Output PathNotFoundException error
Ya

Resolusi: Ekspresi JSONPath untuk indeks yang tidak ada

Menemukan dan mengganti kueri yang terpengaruh.

Ekspresi JSONPath dengan indeks array yang tidak menampilkan objek array

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Ekspresi JSONPath dengan indeks atau slice array menampilkan objek array di Apigee X.

Perbedaan antara Apigee Edge dan Apigee X:

Saat menavigasi struktur contoh ini,

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

Dengan ekspresi $.books,

Apigee Edge Apigee X
Output {“name”:”A”, “name”: “B”} Output [{“name”:”A”, “name”: “B”}]

Dengan ekspresi $.books[-1],

Apigee Edge Apigee X
Output {“name”: “B”} Output [{“name”: “B”}]

Dengan ekspresi $.books[-2:],

Apigee Edge Apigee X
Output {“name”:”A”, “name”: “B”} Output [{“name”:”A”, “name”: “B”}]
Ya

Penyelesaian: Ekspresi JSONPath dengan indeks array tidak menampilkan objek array

Temukan dan ganti ekspresi yang mungkin menampilkan hasil berbeda setelah upgrade.

Batasan nama keystore

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Nama keystore Apigee X hanya boleh berisi huruf, angka, dan tanda hubung. Nama keystore Edge tidak menerapkan batasan ini.

Tidak

Penyelesaian: Batasan nama Keystore

Periksa nama keystore dan perbarui nama untuk menghapus karakter yang tidak didukung jika perlu.

Beberapa jalur dasar di-deploy untuk proxy API

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Beberapa revisi proxy API di-deploy di lingkungan dan setiap revisi memiliki jalur dasar yang berbeda.

Perbedaan antara Apigee Edge dan Apigee X:

Apigee Edge Apigee X
Mendukung deployment beberapa revisi proxy API yang setiap revisinya dapat memiliki jalur dasar yang berbeda. Tidak mendukung deployment beberapa revisi proxy API meskipun proxy memiliki jalur dasar yang berbeda.
Tidak

Resolusi: Beberapa jalur dasar di-deploy untuk proxy API

Perbarui semua paket sehingga hanya satu revisi paket yang di-deploy ke lingkungan, terlepas dari basepath.

Pesan HTTP yang tidak mematuhi kebijakan

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Klien atau Proxy API mengirim pesan (permintaan atau respons) yang tidak mematuhi standar HTTP. Misalnya, nama Header tidak valid, duplikasi di beberapa header yang dibatasi, dan sebagainya.

Anda tidak dapat bermigrasi ke Apigee X jika eksekusi API Anda mengalami satu atau beberapa error berikut:

Error Detail
INVALID_CHARACTERS_IN_HEADER Satu atau beberapa karakter tidak sah ditemukan di header yang ditentukan. Nama header yang valid terdiri dari huruf Latin, angka, dan tanda hubung.
MISSING_COLON Tidak ada : (titik dua) dalam pasangan nama header dan nilai header.
MULTIPLE_CONTENT_LENGTH Beberapa nilai diberikan untuk header Content-Length.
CONTENT_LENGTH_NOT_INTEGER Nilai header Content-Length bukan bilangan bulat.
INVALID_UPGRADE Header Upgrade harus digunakan hanya untuk mengaktifkan koneksi WebSocket, tetapi tidak.
URL_HEADER_SIZE_TOO_LONG Total ukuran URL dan header permintaan melebihi ukuran maksimum yang diizinkan, yaitu 15 KB.
BODY_NOT_ALLOWED Isi pesan tidak diizinkan dengan metode "GET", "DELETE", "TRACE", "OPTIONS", dan "HEAD".
UNSUPPORTED_HTTP_VERSION Versi HTTP selain 1.1 digunakan untuk permintaan dan tidak didukung.
ZERO_CONTENT_LENGTH_FOR_POST_OR_PUT Nilai kolom header Content-Length nol ("0") ditetapkan untuk metode "POST" atau "PUT".
UNSUPPORTED_RESPONSE_PREFIX Awalan header “X-Apigee-” yang tidak didukung ada di header respons.
Ya, mungkin.

Penyelesaian: Pesan HTTP yang tidak mematuhi

Anda harus memperbaiki semua error dalam protokol HTTP sebelum melakukan migrasi ke Apigee X. Jika error berasal dari aplikasi klien, Anda harus meminta developer aplikasi klien untuk memperbaiki masalah tersebut.

Waktu habis masa berlaku token OAuth 2.0 tidak valid

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Batas masa berlaku token OAuth 2.0 berada di luar rentang yang ditentukan.

Perbedaan antara Apigee Edge dan Apigee X:

Apigee Edge Apigee X
Saat ini tidak ada batasan yang diterapkan pada waktu habis masa berlaku token OAuth 2.0, tetapi penerapannya direncanakan. Lihat panduan di bagian OAuth di halaman Batas. Anda harus menetapkan waktu habis masa berlaku token akses dan token refresh untuk OAuth 2.0. Rentang yang didukung adalah:
  • 180 detik <= waktu habis masa berlaku token akses OAuth 2.0 <= 30 hari
  • 1 hari <= Waktu habis masa berlaku token refresh OAuth 2.0 <= 2 tahun
Tidak

Penyelesaian: Waktu habis masa berlaku token OAuth 2.0 tidak valid

Gunakan kebijakan OAuthV2, dan tentukan waktu habis masa berlaku di <ExpiresIn> dan <RefreshTokenExpiresIn>.

Batas produk terlampaui

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Konfigurasi Apigee Edge tidak sesuai dengan batas produk yang ditentukan. Beberapa batas produk yang didokumentasikan tetapi tidak diterapkan di Apigee Edge diterapkan di Apigee X.

Tidak

Resolusi: Batas produk terlampaui

Perbaiki penggunaan yang melebihi batas produk sebelum bermigrasi ke Apigee X.

Kebijakan ServiceCallout dengan penentu koneksi target endpoint dan jalur

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Dalam kebijakan ServiceCallout, elemen <LocalTargetConnection> harus menyertakan elemen <APIProxy> dan <ProxyEndpoint> atau elemen <Path>, tetapi tidak keduanya. Untuk mengetahui informasi selengkapnya, lihat elemen <LocalTargetConnection>.

Apigee Edge mendokumentasikan persyaratan ini, tetapi tidak menerapkannya. Apigee X berhenti memproses jika menemukan <LocalTargetConnection> dengan kedua konfigurasi.

Tidak

Penyelesaian: Kebijakan ServiceCallout dengan penentu spesifikasi koneksi target endpoint dan jalur

Periksa konfigurasi kebijakan ServiceCallout dan hapus konfigurasi <LocalTargetConnection> yang tidak mematuhi kebijakan.

Batasan nama server target

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Nama server target Apigee X hanya boleh berisi huruf, angka, tanda hubung, dan titik. Nama server target Edge tidak menerapkan batasan ini.

Tidak

Resolusi: Pembatasan nama server target

Periksa nama server target dan perbarui nama untuk menghapus karakter yang tidak didukung jika diperlukan.

Sertifikat uji coba di host virtual

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Satu atau beberapa Host virtual menggunakan sertifikat "uji coba gratis" yang disediakan Apigee. Hal ini menyebabkan host virtual merespons permintaan di domain seperti ORG-ENV.apigee.net.

Perbedaan antara Apigee Edge dan Apigee X:

Apigee Edge Apigee X
Mengonfigurasi vhost "default" secara otomatis untuk mendukung nama domain dalam bentuk ORG-ENV.apigee.net. Ada sertifikat wildcard yang dikenal sebagai "sertifikat uji coba gratis", yang memungkinkan TLS di domain ini. Domain Apigee lama dalam bentuk ORG-ENV.apigee.net tidak tersedia di Apigee X. Anda harus mengonfigurasi nama domain Anda sendiri, dan menyediakan sertifikat dengan tepat.
Ya

Penyelesaian: Sertifikat uji coba di host virtual

Anda harus mengonfigurasi domain sendiri, dan menyediakan sertifikat dengan tepat.

Setiap aplikasi klien yang bergantung pada nama domain lama dari formulir ORG-ENV.apigee.net harus diubah untuk memanggil domain baru.

DNS belum terselesaikan

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Endpoint target memiliki nama domain yang belum diselesaikan.

Perbedaan antara Apigee Edge dan Apigee X:

Apigee Edge Apigee X
Jika resolusi DNS gagal, Apigee akan menambahkan .apigee.com ke nama domain dan DNS akan berhasil di-resolve dengan kode respons 4xx. Jika resolusi DNS gagal, Apigee tidak akan mengeksekusi permintaan dan menampilkan kode respons 5xx.
Tidak

Resolusi: DNS tidak terselesaikan

Perbarui endpoint target dengan nama domain yang valid.