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 antipola Apigee Edge yang lebih luas menjelaskan praktik penggunaan yang harus dihindari dalam kasus apa pun. Halaman ini menjelaskan praktik penggunaan tertentu yang tidak direkomendasikan 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 apa pun. Aplikasi ini secara efektif memiliki akses ke semua Produk API. Setiap aplikasi harus dikonfigurasi untuk mengakses minimal 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.

Penyelesaian: Aplikasi tanpa produk API

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

Cara mudahnya adalah dengan menetapkan akses setiap aplikasi ke semua Produk API. Hal ini akan setara dengan yang dapat dilakukan di Apigee Edge. Tantangan yang akan dihadapi adalah jika Anda ingin menggunakan pendekatan "hak istimewa minimum", Anda harus menentukan daftar minimum Produk API yang harus diakses oleh setiap kredensial aplikasi. Anda dapat menganalisisnya dengan laporan Apigee Edge Analytics, berdasarkan client ID.

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 deskripsi resource cache. Tidak mendukung pembuatan, pembaruan, atau penghapusan deskripsi resource cache.
Tidak

Solusi: Cache tanpa waktu habis masa berlaku

Tetapkan waktu habis masa berlaku untuk semua cache.

Ekspresi filter JSONPath pada jalur yang tidak pasti

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Untuk jalur yang tidak definitif, membuat kueri hasil ekspresi filter bukan bagian dari spec 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

Solusi: Ekspresi filter JSONPath pada jalur yang tidak pasti

Temukan dan ganti 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 saat 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

Solusi: Ekspresi JSONPath untuk indeks yang tidak ada

Temukan dan ganti 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

Solusi: Ekspresi JSONPath dengan indeks array yang tidak menampilkan objek array

Menemukan dan mengganti ekspresi yang mungkin menampilkan hasil yang 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 diperlukan.

Beberapa jalur dasar yang 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 dengan setiap revisi dapat memiliki jalur dasar yang berbeda. Tidak mendukung deployment beberapa revisi proxy API meskipun proxy memiliki jalur dasar yang berbeda.
Tidak

Penyelesaian: Beberapa jalur dasar yang di-deploy untuk proxy API

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

Pesan HTTP yang tidak mematuhi kebijakan

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Klien atau API Proxy 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 memiliki satu atau beberapa error berikut:

Error Detail
INVALID_CHARACTERS_IN_HEADER Satu atau beberapa karakter ilegal ditemukan di header yang ditentukan. Nama header yang valid terdiri dari huruf, angka, dan tanda hubung dalam bahasa Inggris.
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 hanya boleh digunakan 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 kebijakan

Anda harus memperbaiki error dalam protokol HTTP sebelum bermigrasi 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 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 mematuhi batas produk yang ditentukan. Beberapa batasan produk yang didokumentasikan, tetapi tidak diterapkan di Apigee Edge, diterapkan di Apigee X.

Tidak

Penyelesaian: 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 koneksi target endpoint dan jalur

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

Pembatasan 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

Penyelesaian: 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 karakter pengganti, yang dikenal sebagai "sertifikat uji coba gratis", yang mengizinkan 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 benar.
Ya

Penyelesaian: Sertifikat uji coba di host virtual

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

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

DNS yang belum terselesaikan

Ringkasan Memerlukan perubahan sisi klien? Resolusi

Endpoint target memiliki nama domain yang belum terselesaikan.

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 berhasil di-resolve dengan kode respons 4xx. Jika resolusi DNS gagal, Apigee tidak akan mengeksekusi permintaan dan menampilkan kode respons 5xx.
Tidak

Penyelesaian: DNS yang Tidak Diselesaikan

Perbarui endpoint target dengan nama domain yang valid.