Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Versi 1.3.1
Panggil Cloud Functions yang di-deploy melalui project Google Cloud Anda.
Saat ini, ekstensi ini mendukung pemanggilan fungsi pemicu HTTP.
Prasyarat
Konten ini menyediakan referensi untuk mengonfigurasi dan menggunakan ekstensi ini. Sebelum menggunakan ekstensi dari proxy API menggunakan kebijakan Extensionscallout, Anda harus:
Aktifkan Cloud Functions API.
Tentukan dan deploy fungsi di Cloud Functions untuk project Google Cloud Anda.
Beri pengguna akses melalui IAM untuk tingkat akses yang Anda inginkan untuk fungsi tersebut. Misalnya, Anda dapat membatasi akses ke fungsi hanya untuk akun layanan yang Anda gunakan untuk mengonfigurasi ekstensi.
Gunakan konten file JSON utama 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. Sebagai pengantar Cloud Functions, cobalah 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 "hello world" default disertakan saat Anda mengaktifkan Cloud Functions API.
Node.js JavaScript berikut di-deploy di Cloud Functions untuk akun GCP. Jika permintaan menyertakan properti pesan, kode akan menampilkan properti tersebut. Jika tidak, kueri akan menampilkan "Hello World!" (Halo Dunia) 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 mencakup ekstensi Google Cloud Functions yang dikonfigurasi dengan kredensial yang diperlukan untuk mengautentikasi dan memperoleh otorisasi untuk memanggil kode di Cloud Functions.
Kode fungsi sebelumnya disimpan di Cloud Functions hanya 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 MenetapkanMessage berikut merekam 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 adalah seperti berikut:
Hello yourself!
Nilai default parsed
adalah true
. Contoh ini menetapkan parsed="false"
dalam tag <Output>
kebijakan,
yang mencegah kebijakan mengurai respons JSON.
Untuk sebagian besar situasi saat menggunakan ekstensi Cloud Functions, Anda menetapkan parsed="false"
.
Lihat <Output> elemen untuk informasi selengkapnya.
Jika Cloud Function menampilkan respons JSON dan Anda menetapkan parsed="true"
, respons dari ekstensi tersebut 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 | ID project 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 dalam 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 khusus untuk ekstensi ini.
Properti | Deskripsi | Default | Wajib |
---|---|---|---|
credentials | Saat dimasukkan di konsol Apigee Edge, ini adalah isi file kunci akun layanan Anda. Saat dikirim melalui Management API, ini adalah nilai berenkode base64 yang dihasilkan dari file kunci akun layanan. | Tidak ada. | Ya. |