16.08.17 - Apigee Edge untuk catatan rilis Public Cloud

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

Pada Selasa, 30 Agustus 2016, kami merilis versi baru Apigee Edge untuk Public Cloud.

Fitur dan info terbaru

Berikut adalah fitur dan update baru dalam rilis ini.

Payload JSON dalam Pesan Penetapan dan Pemicuan Kesalahan

Saat menyetel payload JSON menggunakan kebijakan Assign Message atau Raise Fault, pengguna terkadang harus menggunakan solusi sementara untuk memastikan pesan JSON diformat dengan benar saat runtime, seperti memulai payload dengan garis miring terbalik "\" atau menentukan variablePrefix dan variableSuffix pada elemen Payload, meskipun tidak ada variabel yang digunakan dalam pesan.

Dengan peningkatan ini, tidak ada solusi yang diperlukan untuk memastikan pemformatan pesan JSON yang tepat, dan variabel dapat ditentukan menggunakan tanda kurung kurawal tanpa membuat JSON yang tidak valid. Misalnya, berikut menyisipkan nilai message.content dalam pesan JSON:

<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>

Jika Anda menggunakan solusi sementara, kode Anda akan terus berfungsi seperti apa adanya. Anda juga dapat menggunakan variablePrefix dan variableSuffix, bukan kurung kurawal, untuk menunjukkan variabel.

Lihat elemen <Set><Payload> dalam kebijakan Assign Message dan kebijakan Raise Fault di dokumen referensi. (APIRT-1160)

Peningkatan kebijakan XML ke JSON

Kebijakan XML ke JSON telah ditingkatkan dengan kemampuan berikut. Anda dapat mengonfigurasi kebijakan untuk:

  • Perlakukan beberapa elemen XML sebagai array selama konversi, yang menempatkan nilai dalam tanda kurung siku '[ ]' dalam dokumen JSON.
  • Menghapus atau menghilangkan tingkat hierarki dokumen XML dalam dokumen JSON akhir.

Untuk mengetahui informasi selengkapnya, lihat Kebijakan XML ke JSON. (APIRT-1144)

Beberapa karakter pengganti di jalur resource Produk API

Saat menentukan jalur resource di Produk API, Anda dapat menyertakan karakter pengganti di beberapa tempat dalam jalur resource. Misalnya, /team/*/invoices/** mengizinkan panggilan API dengan satu nilai setelah /team dan jalur resource apa pun setelah invoices/. URI yang diizinkan pada panggilan API adalah proxyBasePath/team/finance/invoices/company/a.

Jika setelah rilis ini jalur resource Produk API yang ada berhenti berfungsi seperti yang diharapkan, tetapkan properti berikut di organisasi Anda untuk kembali ke perilaku sebelumnya: features.enableStandardWildCardMatchForAPIProductResources = true

(MGMT-3273)

Fungsi kriptografi di JavaScript

Serangkaian fungsi JavaScript crypto berperforma tinggi yang baru tersedia untuk membuat, mendapatkan, dan memperbarui objek hash berikut: MD5, SHA-1, SHA256, SHA512. Objek crypto juga memungkinkan Anda mendapatkan tanggal dalam berbagai format. Untuk mengetahui informasi selengkapnya, lihat Model objek JavaScript. (APIRT-2886)

Pemeriksaan versi JAR Panggilan Java

Saat mengupload resource JAR Java ke proxy API, kode status HTTP 400 akan ditampilkan (bukan 500) jika versi resource Java tidak kompatibel dengan versi Java yang didukung Edge, yang tercantum dalam Software yang didukung dan versi yang didukung. (MGMT-3420)

Validasi resource proxy API

Jika Anda memiliki file resource proxy API (seperti JAR JavaScript atau Java) yang disimpan di cakupan lingkungan atau organisasi, framework validasi tidak lagi mengharuskan Anda untuk menyertakan resource tersebut di tingkat proxy API dalam paket proxy agar impor lulus validasi. Validasi resource kini terjadi pada waktu deployment, bukan pada waktu impor. (MGMT-1430)

Mengonfigurasi waktu tunggu untuk setiap proxy API

Anda dapat mengonfigurasi proxy API agar waktu tunggu habis setelah waktu tertentu (dengan status waktu tunggu gateway 504). Kasus penggunaan utamanya adalah untuk pelanggan Private Cloud yang memiliki proxy API yang memerlukan waktu lebih lama untuk dieksekusi. Misalnya, Anda memerlukan proxy tertentu agar waktu tunggu habis dalam 3 menit. Anda dapat menggunakan properti api.timeout baru dalam konfigurasi untuk proxy API. Berikut cara melakukannya dengan contoh 3 menit:

  1. Pertama, pastikan untuk mengonfigurasi load balancer, router, dan pemroses pesan agar waktu tunggu habis setelah 3 menit.
  2. Kemudian, konfigurasikan proxy yang relevan agar waktu tunggu habis dalam 3 menit. Tentukan nilai dalam milidetik. Contoh:
    <ProxyEndpoint name="default">
      <HTTPProxyConnection>
        <BasePath>/v1/weather</BasePath>
        <Properties>
          <!-- api.timeout is in milliseconeds -->
          <Property name="api.timeout">180000</Property>
        </Properties>
        ...
  3. Namun, perhatikan bahwa memperpanjang waktu tunggu sistem dapat menyebabkan masalah performa, karena semua proxy tanpa setelan api.timeout menggunakan load balancer, router, dan waktu tunggu pemroses pesan yang baru dan lebih tinggi. Jadi, konfigurasi proxy API lain yang tidak memerlukan waktu tunggu yang lebih lama untuk menggunakan waktu tunggu yang lebih rendah. Misalnya, berikut menetapkan proxy API agar waktu tunggu habis setelah 1 menit:
    <Property name="api.timeout">60000</Property>

Pelanggan Cloud, yang tidak dapat mengubah waktu tunggu Edge, juga dapat mengonfigurasi waktu tunggu proxy API, selama waktu tunggu lebih singkat daripada waktu tunggu pemroses pesan Edge standar, yaitu 57 detik.

Anda tidak dapat mengisi nilai dengan variabel. Properti ini dibahas dalam Referensi properti endpoint. (APIRT-1778)

TLS/SSL untuk Pencatatan pesan Kebijakan

<KeyStore> dan <TrustStore> dapat ditetapkan dalam konfigurasi SSLInfo pada kebijakan Message Logging, yang memungkinkan TLS/SSL satu arah dan dua arah dengan layanan logging. Anda mengonfigurasi SSLInfo pada kebijakan Message Logging dengan cara yang sama seperti pada TargetEndpoint proxy. Namun, TLS/SSL Pencatatan Pesan hanya mendukung protokol TCP. (APIRT-1858)

Bug yang diperbaiki

Bug berikut telah diperbaiki dalam rilis ini. Daftar ini terutama ditujukan bagi pengguna yang memeriksa apakah tiket dukungan mereka telah diselesaikan. Fitur ini tidak dirancang untuk memberikan informasi mendetail bagi semua pengguna.

ID Masalah Deskripsi
SECENG-609 Panggilan runtime tidak gagal selama penghapusan truststore terkait atau saat sertifikat yang valid di truststore dihapus
MGMT-3404 Melihat/mengambil log Node.js dan men-deploy proxy sangat lambat
MGMT-3400 Panggilan ke API pengelolaan /userroles gagal jika pengguna yang melakukan panggilan memiliki tanda "+" dalam namanya
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException: 1, saat mengimpor paket API Proxy yang berisi direktori resources/node/resources
MGMT-3364 OAuthV2: pemeriksaan redirect_uri
MGMT-3319 Entri daftar di brankas yang memiliki nilai null di salah satu entri tidak berfungsi untuk organisasi (CPS dan non-CPS)
MGMT-3226 Kueri di tingkat organisasi/lingkungan tidak boleh menarik semua data yang menyebabkan API gagal
Release_160302 memiliki bug yang menyebabkan listingan resource di tingkat organisasi/lingkungan gagal jika ukuran kumulatif resource di atas 16 MB. Perbaikan ini akan mengatasi masalah tersebut.
AXAPP-2429 Analytics API menggunakan response_status_code menampilkan error akses data
AXAPP-2386 Memperbaiki konten laporan kosong dalam laporan email harian Analytics
AXAPP-2347 Tidak menerima email ringkasan analisis harian
APIRT-3141 Java Callout gagal saat memanggil ExecutionResult() baru, karena konstruktor telah dibuat privat
APIRT-3140 Kebijakan ServiceCallout tidak berfungsi dalam panggilan API HEAD
APIRT-3131 createdBy yang salah ditampilkan untuk Proxy API saat menggunakan monetisasi dengan penyedia autentikasi eksternal
APIRT-3121 Perubahan file resource organisasi yang dilakukan tidak 100% efektif
APIRT-3117 MP mencapai penggunaan CPU 100% dan berhenti menyajikan traffic
APIRT-3016 Error "Waktu panggilan habis" pada router saat deployment
APIRT-2975 Gagal mengupload paket sertifikat
APIRT-2955 Tidak dapat menyamarkan atribut tertentu dari data respons JSON untuk header Content-Type yang sesuai dengan FHIR 'application/json+fhir'
APIRT-2946 Kebijakan OAuthV2-RefreshToken tidak menyembunyikan atribut meskipun tampilan disetel ke false
APIRT-2908 Penerapan TLS1.2 untuk panggilan API internal diperlukan setelah update TLS1.2 di virtualhost
APIRT-2901 Respons yang di-gzip yang ditampilkan dari cache dikompresi dua kali
APIRT-2873 MP memunculkan NullPointerException terkait VerifyAPIKey setelah penghapusan produk/developer/proxy
APIRT-2871 Kebijakan IOIntensive muncul dua kali di Trace
APIRT-2825 Kesalahan tata bahasa dalam respons error accesstoken
APIRT-2750 Kegagalan traffic tinggi di organisasi tertentu
APIRT-2685 Traffic tidak dapat mengalir karena terjadi error yang tidak diketahui
APIRT-2647 Error"Underlying input stream returned zero bytes" dengan nonprod/dev
APIRT-2630 Masalah terputus-putus saat mencoba membaca nilai dari cache
APIRT-2620 Kumpulan thread terpisah untuk beberapa langkah pemblokiran
APIRT-2610 java.lang.ClassCastException dengan kebijakan Cache Respons
APIRT-2608 Error penguraian header Last-Modified dalam kebijakan Cache Respons
APIRT-2605 Variabel"organization" dan "environment" tidak boleh ditimpa melalui kebijakan
APIRT-2566 Kebijakan OAuthV2 menampilkan Header WWW-Authenticate yang salah format
APIRT-2491 Update TargetServer gagal karena waktu tunggu RPC habis antara pengelolaan dan mps
APIRT-2386 Cakupan string kosong dibuat di produk API dengan cakupan OAuth yang Diizinkan kosong
APIRT-2383 Kebijakan Transformasi XSL tampaknya tidak mencatat data apa pun saat terjadi error
APIRT-2364 Variabel alur kesalahan OAuth tidak diperbarui saat terjadi error
APIRT-2216 Server mengirim peristiwa - aliran peristiwa mengalami masalah di prod
APIRT-2079 Panggilan cURL DEBUG tidak berhenti setelah waktu tunggu habis untuk sesi yang dibuat
APIRT-1495 Perlindungan Ancaman XML tidak menangkap Content-Type fhir
APIRT-347 Kebijakan XSL tidak divalidasi dengan benar saat diimpor (tidak menetapkan hasil ke variabel output seperti yang didokumentasikan)