Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi
Apigee X. info
Versi 2.0.0
Memanggil Cloud Functions yang di-deploy melalui project Google Cloud Anda.
Saat ini, ekstensi ini mendukung pemanggilan fungsi pemicu HTTP.
Prasyarat
Konten ini memberikan referensi untuk mengonfigurasi dan menggunakan ekstensi ini. Sebelum menggunakan ekstensi dari proxy API menggunakan kebijakan ExtensionCallout, Anda harus:
Aktifkan Cloud Functions API.
Menentukan dan deploy fungsi di Cloud Functions untuk project Google Cloud Anda.
Berikan akses pengguna melalui IAM untuk tingkat akses yang Anda inginkan untuk fungsi tersebut. Misalnya, Anda dapat membatasi akses ke fungsi hanya ke akun layanan yang Anda gunakan untuk mengonfigurasi ekstensi.
Gunakan konten file JSON kunci yang dihasilkan saat menambahkan dan mengonfigurasi ekstensi menggunakan referensi konfigurasi.
Tentang Cloud Functions
Dengan Google Cloud Functions, Anda dapat membuat dan men-deploy fungsi di Google Cloud, lalu memanggil fungsi tersebut dari kode lain. Untuk pengantar Cloud Functions, coba salah satu panduan memulai.
Contoh
Contoh berikut menggambarkan cara memanggil fungsi di Cloud Functions menggunakan kebijakan ExtensionCallout.
Memanggil fungsi Node.js
Contoh berikut menampilkan kebijakan ExtensionCallout yang memanggil ekstensi Google Cloud Functions. Ekstensi memanggil fungsi "halo dunia" default yang disertakan saat Anda mengaktifkan Cloud Functions API.
JavaScript Node.js berikut di-deploy di Cloud Functions untuk akun GCP. Jika permintaan menyertakan properti pesan, kode akan menampilkannya. Jika tidak, fungsi ini akan menampilkan "Hello World!" sebagai responsnya.
/**
* Responds to any HTTP request.
*
* @param {!express:Request} req HTTP request context.
* @param {!express:Response} res HTTP response context.
*/
exports.helloWorld = (req, res) => {
let message = req.query.message || req.body.message || 'Hello World!';
res.status(200).send(message);
};
Contoh ini menyertakan ekstensi Google Cloud Functions yang dikonfigurasi dengan kredensial yang diperlukan untuk melakukan autentikasi dan mendapatkan otorisasi untuk memanggil kode di Cloud Functions.
Kode fungsi sebelumnya disimpan di Cloud Functions sebagai helloWorld
. Kode konfigurasi kebijakan ExtensionCallout berikut menggunakan nama ini, beserta nilai region dan project ID yang cocok dengan detail lingkungan Cloud Functions tempat fungsi di-deploy.
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "us-central1",
"projectId" : "my-project",
"functionName" : "hello-world",
"method" : "POST",
"payload" : { "message" : "Hello yourself!" }
}
]]></Input>
<Output parsed="false">function.response</Output>
Kebijakan AssignMessage berikut menangkap nilai respons untuk tujuan proses debug.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Function-Response">
<DisplayName>Get Function Response</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{function.response}</Payload>
</Set>
</AssignMessage>
Respons terhadap permintaan di atas akan seperti berikut:
Hello yourself!
Nilai default parsed
adalah true
. Contoh ini menetapkan parsed="false"
di tag <Output>
kebijakan,
yang mencegah kebijakan mengurai respons JSON.
Untuk sebagian besar situasi saat menggunakan ekstensi Cloud Functions, Anda menetapkan parsed="false"
.
Lihat elemen<Output> untuk mengetahui informasi selengkapnya.
Jika Cloud Function menampilkan respons JSON dan Anda menetapkan parsed="true"
, respons dari ekstensi adalah referensi objek. Untuk mengekstrak respons dari referensi, gunakan sintaksis berikut: {objectName}.{jsonKey}
. Contoh:
function.response.message
Tindakan
panggil
Memanggil fungsi Cloud.
Saat ini, ekstensi ini mendukung pemanggilan fungsi pemicu HTTP.
Sintaksis
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "deployment-region",
"projectId" : "project-id",
"functionName" : "function-name",
"method" : "http-method",
"payload" : { json-payload }
}
]]></Input>
<Output>function.response</Output>
Contoh
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "us-central1",
"projectId" : "my-project",
"functionName" : "hello-world",
"method" : "POST",
"payload" : { "message" : "Hello yourself!" }
}
]]></Input>
<Output>function.response</Output>
Parameter permintaan
Parameter | Deskripsi | Jenis | Default | Wajib |
---|---|---|---|---|
region | Region Google Cloud tempat fungsi di-deploy. | String. | Tidak ada. | Ya. |
projectId | Project ID GCP. | String. | Tidak ada. | Ya. |
functionName | Nama fungsi HTTP yang akan dipanggil. Ini adalah nama yang Anda gunakan saat membuat fungsi (tidak harus nama dari kode fungsi). | String. | Tidak ada. | Ya. |
method | Metode HTTP yang akan digunakan saat memanggil fungsi. | String. | GET |
Tidak. |
payload | Payload yang akan dikirim dengan pemanggilan fungsi. | JSON. | Tidak ada. | Tidak. |
Respons
Nilai respons fungsi yang ditentukan, jika ada.
Properti respons
Tidak ada.
Referensi Konfigurasi
Gunakan hal berikut saat Anda mengonfigurasi dan men-deploy ekstensi ini untuk digunakan di proxy API. Untuk mengetahui langkah-langkah mengonfigurasi ekstensi menggunakan konsol Apigee, lihat Menambahkan dan mengonfigurasi ekstensi.
Properti ekstensi umum
Properti berikut ada untuk setiap ekstensi.
Properti | Deskripsi | Default | Wajib |
---|---|---|---|
name |
Nama yang Anda berikan pada konfigurasi ekstensi ini. | Tidak ada | Ya |
packageName |
Nama paket ekstensi seperti yang diberikan oleh Apigee Edge. | Tidak ada | Ya |
version |
Nomor versi untuk paket ekstensi tempat Anda mengonfigurasi ekstensi. | Tidak ada | Ya |
configuration |
Nilai konfigurasi khusus untuk ekstensi yang Anda tambahkan. Lihat Properti untuk paket ekstensi ini | Tidak ada | Ya |
Properti untuk paket ekstensi ini
Tentukan nilai untuk properti konfigurasi berikut yang khusus untuk ekstensi ini.
Properti | Deskripsi | Default | Wajib |
---|---|---|---|
credentials | Saat dimasukkan di konsol Apigee Edge, ini adalah konten file kunci akun layanan Anda. Jika dikirim melalui management API, nilai ini adalah nilai yang dienkode base64 yang dihasilkan dari file kunci akun layanan. | Tidak ada. | Ya. |