Masalah umum pada Apigee

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

Bagian berikut menjelaskan masalah umum pada Apigee. Umumnya, masalah yang tercantum akan diperbaiki dalam rilis mendatang.

Masalah umum Edge lainnya

Bagian berikut menjelaskan berbagai masalah umum pada Edge.

Area Masalah umum
Masa berlaku cache berakhir sehingga menghasilkan nilai cachehit yang salah

Saat variabel alur cachehit digunakan setelah kebijakan LookupCache, karena cara titik debug dikirim untuk perilaku asinkron, LookupPolicy mengisi objek DebugInfo sebelum callback dieksekusi, sehingga menyebabkan error.

Solusi: Ulangi prosesnya (lakukan panggilan kedua) lagi tepat setelah panggilan pertama.

Menetapkan Kebijakan InvalidateCache PurgeChildEntries ke benar (true) tidak berfungsi dengan benar

Menetapkan PurgeChildEntries dalam kebijakan InvalidateCache hanya akan menghapus nilai elemen KeyFragment, tetapi akan menghapus seluruh cache.

Solusi: Gunakan kebijakan KeyValueMapOperations untuk melakukan iterasi pembuatan versi cache dan mengabaikan kebutuhan untuk membatalkan validasi cache.

Permintaan deployment serentak untuk proxy SharedFlow atau API dapat mengakibatkan status yang tidak konsisten di Server Pengelolaan tempat beberapa revisi ditampilkan sebagai di-deploy.

Hal ini dapat terjadi, misalnya, saat pipeline deployment CI/CD dijalankan secara serentak menggunakan revisi yang berbeda. Untuk menghindari masalah ini, jangan deploy proxy API atau SharedFlow sebelum deployment saat ini selesai.

Solusi: Hindari deployment proxy API atau SharedFlow serentak.

Masalah umum pada UI Edge

Bagian berikut menjelaskan masalah umum pada UI Edge.

Area Masalah umum
Tidak dapat mengakses halaman Administrasi Zona SSO Edge dari menu navigasi setelah organisasi dipetakan ke zona identitas Saat menghubungkan organisasi ke zona identitas, Anda tidak dapat lagi mengakses halaman Administrasi Zona SSO Edge dari menu navigasi sebelah kiri dengan memilih Admin > SSO. Sebagai solusi, buka halaman secara langsung menggunakan URL berikut: https://apigee.com/sso

Masalah umum pada portal terintegrasi

Bagian berikut menjelaskan masalah umum pada portal terintegrasi.

Area Masalah umum
SmartDocs
  • Apigee Edge mendukung Spesifikasi OpenAPI 3.0 saat Anda membuat spesifikasi menggunakan editor spesifikasi dan memublikasikan API menggunakan SmartDocs di portal, meskipun sebagian fitur belum didukung.

    Misalnya, fitur berikut dari Spesifikasi OpenAPI 3.0 belum didukung:

    • Properti allOf untuk menggabungkan dan memperluas skema
    • Referensi jarak jauh

    Jika fitur yang tidak didukung dirujuk dalam Spesifikasi OpenAPI Anda, dalam beberapa kasus alat akan mengabaikan fitur tersebut, tetapi tetap merender dokumentasi referensi API. Dalam kasus lain, fitur yang tidak didukung akan menyebabkan error yang mencegah rendering dokumentasi referensi API berhasil. Dalam kedua kasus tersebut, Anda harus mengubah Spesifikasi OpenAPI untuk menghindari penggunaan fitur yang tidak didukung hingga fitur tersebut didukung dalam rilis mendatang.

    Catatan: Karena editor spesifikasi kurang membatasi daripada SmartDocs saat merender dokumentasi referensi API, Anda mungkin mengalami hasil yang berbeda di antara alat tersebut.

  • Saat menggunakan Coba API ini di portal, header Accept ditetapkan ke application/json, terlepas dari nilai yang ditetapkan untuk consumes dalam Spesifikasi OpenAPI.
  • 138438484: Beberapa server tidak didukung.
Penyedia identitas SAML Single logout (SLO) dengan penyedia identitas SAML tidak didukung untuk domain kustom. Untuk mengaktifkan domain kustom dengan penyedia identitas SAML, biarkan kolom URL Logout kosong saat Anda mengonfigurasi setelan SAML.
Admin portal
  • Pembaruan portal simultan (seperti pengeditan halaman, tema, CSS, atau skrip) oleh beberapa pengguna saat ini tidak didukung.
  • Jika Anda menghapus halaman dokumentasi referensi API dari portal, tidak ada cara untuk membuatnya ulang; Anda harus menghapus dan menambahkan ulang produk API, serta membuat ulang dokumentasi referensi API.
  • Saat mengonfigurasi kebijakan keamanan konten, mungkin perlu waktu hingga 15 menit agar perubahan diterapkan sepenuhnya.
  • Saat menyesuaikan tema portal, mungkin perlu waktu hingga 5 menit agar perubahan diterapkan sepenuhnya.
Fitur portal
  • Penelusuran akan diintegrasikan ke portal terintegrasi dalam rilis mendatang.

Masalah umum pada Edge for Private Cloud

Bagian berikut menjelaskan masalah umum pada Edge for Private Cloud.

Area Masalah umum
Edge for Private Cloud 4.52.02 & 4.53.00

Saat Anda menggunakan kebijakan SetOauthV2Info, jika AccessToken tidak dapat di-resolve ke variabel atau null, kebijakan tersebut akan menyebabkan error datastore:

{
              "fault": {
                "faultstring": "Error while accessing datastore;Please retry later",
                "detail": {
                  "errorcode": "datastore.ErrorWhileAccessingDataStore"
                }
              }
            }
            

Perilaku ini berbeda dengan versi Apigee sebelumnya, saat skenario tersebut memicu error "invalid_access_token":

{
              "fault": {
                "faultstring": "Invalid Access Token",
                "detail": {
                  "errorcode": "keymanagement.service.invalid_access_token"
                }
              }
            }
            

Untuk memitigasi hal ini, tambahkan kebijakan RaiseFault ke proxy Anda untuk menyimulasikan pesan error yang lebih lama. Kebijakan RaiseFault ini dapat dijalankan jika variabel token akses bernilai null. Lihat contoh di bawah:

<!-- Sample Raise Fault Policy --->
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RaiseFault async="false" continueOnError="false" enabled="true" name="RaiseFault-MissingAccessToken">
    <DisplayName>RaiseFault-MissingAccessToken</DisplayName>
    <Properties/>
    <FaultResponse>
        <Set>
            <Headers/>
            <Payload contentType="application/json">{"fault":{"faultstring":"Invalid Access Token","detail":{"errorcode":"keymanagement.service.invalid_access_token"}}}</Payload>
            <StatusCode>500</StatusCode>
            <ReasonPhrase>Internal Server Error</ReasonPhrase>
        </Set>
    </FaultResponse>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</RaiseFault>

Kebijakan RaiseFault dapat ditambahkan secara bersyarat sebelum kebijakan SetOauthV2Info dalam alur proxy Anda seperti yang ditunjukkan pada contoh di bawah:

<Step>
  <!-- Execute RaiseFault policy if access_token flow variable is null -->
  <Condition>access_token = null</Condition>
  <Name>RaiseFault-MissingAccessToken</Name>
</Step>
<Step>
  <!-- Execute SetOAuthV2Info policy if access_token flow variable is null -->
  <Condition>access_token != null</Condition>
  <Name>SetOAuthV2Info</Name>
</Step>

Apigee akan merilis patch untuk memulihkan perilaku yang disebutkan di atas untuk Edge For Private Cloud versi 4.52.02 dan 4.53.00.

Update Edge for Private Cloud 4.52.02

Saat Anda mengupdate Edge for Private Cloud dari versi 4.51.00, 4.52.00, atau 4.52.01 ke 4.52.02, perkirakan dampak tambahan pada runtime dan API pengelolaan.

Dampak ini terjadi setelah node Cassandra diupdate dan berlangsung hingga semua node server manajemen dan pemroses pesan diupdate.

Jika hal ini terjadi, perkirakan dampak di salah satu area berikut:

  • Runtime API yang memperbarui token OAuth
  • API pengelolaan yang mencantumkan aplikasi developer
  • API pengelolaan yang mencantumkan produk

Apigee akan memublikasikan dokumentasi update yang telah direvisi untuk Edge for Private Cloud 4.52.02 yang mengatasi masalah ini.

Update Mint Edge for Private Cloud 4.52.01

Masalah ini hanya memengaruhi pengguna yang menggunakan MINT atau mengaktifkan MINT di penginstalan Edge for Private Cloud.

Komponen yang terpengaruh: edge-message-processor

Masalah: Jika Anda mengaktifkan monetisasi dan menginstal 4.52.01 sebagai penginstalan baru atau mengupgrade dari versi Cloud Pribadi sebelumnya, Anda akan mengalami masalah dengan pemroses pesan. Jumlah thread terbuka akan meningkat secara bertahap sehingga menyebabkan kehabisan resource. Pengecualian berikut terlihat di system.log edge-message-processor:

Error injecting constructor, java.lang.OutOfMemoryError: unable to create new native thread
Kerentanan HTTP/2 Apigee

Kerentanan Denial-of-Service (DoS) baru-baru ini ditemukan di beberapa penerapan protokol HTTP/2 (CVE-2023-44487), termasuk di Apigee Edge untuk Cloud Pribadi. Kerentanan ini dapat menyebabkan DoS pada fungsi pengelolaan Apigee API. Untuk mengetahui detail selengkapnya, lihat Buletin Keamanan Apigee GCP-2023-032.

Komponen router dan server pengelolaan Edge for Private Cloud terekspos ke internet dan berpotensi rentan. Meskipun HTTP/2 diaktifkan di port manajemen komponen khusus Edge lainnya di Edge untuk Private Cloud, tidak ada komponen tersebut yang terekspos ke internet. Pada komponen non-Edge, seperti Cassandra, Zookeeper, dan lainnya, HTTP/2 tidak diaktifkan. Sebaiknya lakukan langkah-langkah berikut untuk mengatasi kerentanan Edge untuk Private Cloud:

Ikuti langkah-langkah berikut jika Anda menggunakan Edge Private Cloud versi 4.51.00.11 atau yang lebih baru:

  1. Perbarui server pengelolaan:

    1. Di setiap node server pengelolaan, buka /opt/apigee/customer/application/management-server.properties
    2. Tambahkan baris ini ke file properti:
      conf_webserver_http2.enabled=false
    3. Mulai ulang komponen server pengelolaan:
      apigee-service edge-management-server restart
  2. Perbarui pemroses pesan:

    1. Di setiap node pemroses pesan, buka /opt/apigee/customer/application/message-processor.properties
    2. Tambahkan baris ini ke file properti:
      conf_webserver_http2.enabled=false
    3. Mulai ulang komponen pemroses pesan:
      apigee-service edge-message-processor restart
  3. Perbarui router:

    1. Di setiap node router, buka /opt/apigee/customer/application/router.properties
    2. Tambahkan baris ini ke file properti:
      conf_webserver_http2.enabled=false
    3. Mulai ulang komponen pemroses pesan:
      apigee-service edge-router restart
  4. Memperbarui QPID:

    1. Di setiap node QPID, buka /opt/apigee/customer/application/qpid-server.properties
    2. Tambahkan baris ini ke file properti:
      conf_webserver_http2.enabled=false
    3. Mulai ulang komponen pemroses pesan:
      apigee-service edge-qpid-server restart
  5. Memperbarui Postgres:

    1. Di setiap node Postgres, buka /opt/apigee/customer/application/postgres-server.properties
    2. Tambahkan baris ini ke file properti:
      conf_webserver_http2.enabled=false
    3. Mulai ulang komponen pemroses pesan:
      apigee-service edge-postgres-server restart

Ikuti langkah-langkah berikut jika Anda menggunakan Edge for Private Cloud versi yang lebih lama dari 4.51.00.11:

  1. Perbarui server pengelolaan:

    1. Di setiap node server pengelolaan, buka /opt/apigee/customer/application/management-server.properties
    2. Tambahkan dua baris berikut ke file properti:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Mulai ulang komponen server pengelolaan:
      apigee-service edge-management-server restart
  2. Perbarui pemroses pesan:

    1. Di setiap node pemroses pesan, buka /opt/apigee/customer/application/message-processor.properties
    2. Tambahkan dua baris berikut ke file properti:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Mulai ulang komponen pemroses pesan:
      apigee-service edge-message-processor restart
  3. Perbarui router:

    1. Di setiap node router, buka /opt/apigee/customer/application/router.properties
    2. Tambahkan dua baris berikut ke file properti:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Mulai ulang komponen pemroses pesan:
      apigee-service edge-router restart
  4. Memperbarui QPID:

    1. Di setiap node QPID, buka /opt/apigee/customer/application/qpid-server.properties
    2. Tambahkan dua baris berikut ke file properti:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Mulai ulang komponen pemroses pesan:
      apigee-service edge-qpid-server restart
  5. Memperbarui Postgres:

    1. Di setiap node Postgres, buka /opt/apigee/customer/application/postgres-server.properties
    2. Tambahkan dua baris berikut ke file properti:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Mulai ulang komponen pemroses pesan:
      apigee-service edge-postgres-server restart
Upgrade Postgresql saat mengupdate ke versi 4.52

Apigee-postgresql mengalami masalah saat mengupgrade dari Edge untuk Private Cloud versi 4.50 atau 4.51 ke versi 4.52. Masalah ini terutama terjadi jika jumlah tabel lebih besar dari 500.

Anda dapat memeriksa jumlah total tabel di Postgres dengan menjalankan kueri SQL di bawah:

select count(*) from information_schema.tables

Solusi: Saat Memperbarui Apigee Edge 4.50.00 atau 4.51.00 ke 4.52.00, pastikan untuk melakukan langkah awal sebelum mengupgrade Apigee-postgresql.

Kebijakan LDAP

149245401: Setelan kumpulan koneksi LDAP untuk JNDI yang dikonfigurasi melalui resource LDAP tidak ditampilkan, dan setelan default JNDI menyebabkan koneksi sekali pakai setiap kali. Akibatnya, koneksi dibuka dan ditutup setiap kali untuk penggunaan tunggal, sehingga menghasilkan sejumlah besar koneksi per jam ke server LDAP.

Solusi:

Untuk mengubah properti kumpulan koneksi LDAP, lakukan langkah-langkah berikut untuk menetapkan perubahan global di semua kebijakan LDAP.

  1. Buat file properti konfigurasi jika belum ada:
    /opt/apigee/customer/application/message-processor.properties
  2. Tambahkan kode berikut ke file (ganti nilai properti Java Naming and Directory Interface (JNDI) berdasarkan persyaratan konfigurasi resource LDAP Anda).
    bin_setenv_ext_jvm_opts="-Dcom.sun.jndi.ldap.connect.pool.maxsize=20
    -Dcom.sun.jndi.ldap.connect.pool.prefsize=2
    -Dcom.sun.jndi.ldap.connect.pool.initsize=2
    -Dcom.sun.jndi.ldap.connect.pool.timeout=120000
    -Dcom.sun.jndi.ldap.connect.pool.protocol=ssl"
  3. Pastikan file /opt/apigee/customer/application/message-processor.properties dimiliki oleh apigee:apigee.
  4. Mulai ulang setiap pemroses pesan.

Untuk memverifikasi bahwa properti JNDI kumpulan koneksi Anda telah diterapkan, Anda dapat melakukan tcpdump untuk mengamati perilaku kumpulan koneksi LDAP dari waktu ke waktu.

Latensi Pemrosesan Permintaan Tinggi

139051927: Latensi pemrosesan proxy yang tinggi yang ditemukan di Message Processor memengaruhi semua Proxy API. Gejalanya meliputi keterlambatan waktu pemrosesan 200-300 md dibandingkan waktu respons API normal dan dapat terjadi secara acak meskipun dengan TPS rendah. Hal ini dapat terjadi jika ada lebih dari 50 server target tempat pemroses pesan membuat koneksi.

Penyebab utama: Pemroses pesan menyimpan cache yang memetakan URL server target ke objek HTTPClient untuk koneksi keluar ke server target. Secara default, setelan ini ditetapkan ke 50 yang mungkin terlalu rendah untuk sebagian besar deployment. Jika deployment memiliki beberapa kombinasi org/env dalam penyiapan, dan memiliki banyak server target yang melebihi 50 secara keseluruhan, URL server target akan terus dihapus dari cache, sehingga menyebabkan latensi.

Validasi: Untuk menentukan apakah penghapusan URL server target menyebabkan masalah latensi, telusuri log sistem Message Processor untuk menemukan kata kunci "onEvict" atau "Eviction". Kehadirannya dalam log menunjukkan bahwa URL server target dihapus dari cache HTTPClient karena ukuran cache terlalu kecil.

Solusi: Untuk Edge for Private Cloud versi 19.01 dan 19.06, Anda dapat mengedit dan mengonfigurasi cache HTTPClient, /opt/apigee/customer/application/message-processor.properties:

conf/http.properties+HTTPClient.dynamic.cache.elements.size=500

Kemudian, mulai ulang pemroses pesan. Lakukan perubahan yang sama untuk semua pemroses pesan.

Nilai 500 adalah contoh. Nilai optimal untuk penyiapan Anda harus lebih besar dari jumlah server target yang akan dihubungkan oleh pemroses pesan. Tidak ada efek samping dari menetapkan properti ini lebih tinggi, dan satu-satunya pengaruhnya adalah waktu pemrosesan permintaan proxy pemroses pesan yang lebih baik.

Catatan: Edge for Private Cloud versi 50.00 memiliki setelan default 500.

Beberapa entri untuk peta nilai kunci

157933959: Penyisipan dan pembaruan serentak ke peta nilai kunci (KVM) yang sama yang dicakup ke tingkat organisasi atau lingkungan menyebabkan data yang tidak konsisten dan pembaruan yang hilang.

Catatan: Batasan ini hanya berlaku untuk Edge for Private Cloud. Edge untuk Cloud Publik dan Hybrid tidak memiliki batasan ini.

Untuk solusi di Edge for Private Cloud, buat KVM di cakupan apiproxy.