คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
เวอร์ชัน 1.3.1
เรียกใช้ Cloud Functions ที่ทำให้ใช้งานได้ผ่านโปรเจ็กต์ Google Cloud
ปัจจุบันส่วนขยายนี้รองรับการเรียกใช้ฟังก์ชันทริกเกอร์ HTTP
ข้อกำหนดเบื้องต้น
เนื้อหานี้มีข้อมูลอ้างอิงสำหรับการกำหนดค่าและการใช้ส่วนขยายนี้ ก่อนที่จะใช้ส่วนขยายจากพร็อกซี API โดยใช้นโยบาย ชิ้นงานข้อความไฮไลต์ คุณต้องดำเนินการต่อไปนี้
เปิดใช้ Cloud Functions API
กำหนดและทำให้ฟังก์ชันใช้งานได้ใน Cloud Functions สำหรับโปรเจ็กต์ Google Cloud
ให้สิทธิ์เข้าถึงแก่ผู้ใช้ผ่าน IAM สำหรับระดับการเข้าถึงที่คุณต้องการสำหรับฟังก์ชัน เช่น คุณจะจำกัดการเข้าถึงฟังก์ชันให้เฉพาะบัญชีบริการที่ใช้กำหนดค่าส่วนขยายได้
ใช้เนื้อหาของไฟล์ JSON คีย์ที่ได้เมื่อเพิ่มและกำหนดค่าส่วนขยายโดยใช้ข้อมูลอ้างอิงการกำหนดค่า
เกี่ยวกับ Cloud Functions
คุณสามารถใช้ Google Cloud Functions ในการสร้างและทำให้ฟังก์ชันใช้งานได้บน Google Cloud แล้วเรียกใช้ฟังก์ชันเหล่านั้นจากโค้ดอื่นๆ สำหรับข้อมูลเบื้องต้นเกี่ยวกับฟังก์ชันระบบคลาวด์ ให้ลองลองใช้การเริ่มต้นอย่างรวดเร็ว
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงวิธีเรียกใช้ฟังก์ชันใน Cloud Functions โดยใช้นโยบาย ชิ้นงานข้อความไฮไลต์
เรียกใช้ฟังก์ชัน Node.js
ตัวอย่างต่อไปนี้แสดงนโยบาย ชิ้นงานข้อความไฮไลต์ ซึ่งเรียกใช้ส่วนขยาย Google Cloud Functions ส่วนขยายนี้จะเรียกค่าเริ่มต้นว่า "สวัสดีโลก" ที่รวมอยู่เมื่อคุณเปิดใช้ Cloud Functions API
JavaScript Node.js ต่อไปนี้มีการทำให้ใช้งานได้ใน Cloud Functions สำหรับบัญชี GCP หากคำขอมีพร็อพเพอร์ตี้ข้อความ รหัสจะแสดงพร็อพเพอร์ตี้นั้น มิเช่นนั้น จะแสดงข้อความ "สวัสดีทุกคน" เป็นการตอบสนอง
/**
* 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);
};
ตัวอย่างนี้มีส่วนขยาย Google Cloud Functions ที่กำหนดค่าด้วยข้อมูลเข้าสู่ระบบที่จำเป็นสำหรับการตรวจสอบสิทธิ์และรับสิทธิ์ในการเรียกใช้โค้ดบน Cloud Functions
ระบบจะบันทึกโค้ดฟังก์ชันก่อนหน้าไว้ใน Cloud Functions โดยใช้เพียง helloWorld
โค้ดการกำหนดค่านโยบาย Extensionข้อความไฮไลต์ ต่อไปนี้ใช้ชื่อนี้ รวมถึงค่ารหัสภูมิภาคและรหัสโปรเจ็กต์ที่ตรงกับรายละเอียดในสภาพแวดล้อม Cloud Functions ที่มีการทำให้ฟังก์ชันใช้งานได้
<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>
นโยบาย AssignMessage ต่อไปนี้จะบันทึกค่าการตอบกลับเพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่อง
<?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>
การตอบสนองต่อคำขอข้างต้นมีลักษณะดังต่อไปนี้
Hello yourself!
ค่าเริ่มต้นของ parsed
คือ true
ตัวอย่างนี้ตั้งค่า parsed="false"
ในแท็ก <Output>
ของนโยบาย
ซึ่งป้องกันไม่ให้นโยบายแยกวิเคราะห์การตอบกลับ JSON
ในสถานการณ์ส่วนใหญ่เมื่อใช้ส่วนขยาย Cloud Functions ให้ตั้งค่า parsed="false"
โปรดดู <Output> เพื่อดูเพิ่มเติม
หาก Cloud Function แสดงผลการตอบกลับ JSON และคุณตั้งค่า parsed="true"
การตอบกลับจากส่วนขยายจะเป็นการอ้างอิงออบเจ็กต์ หากต้องการดึงการตอบกลับจากข้อมูลอ้างอิง ให้ใช้ไวยากรณ์ต่อไปนี้: {objectName}.{jsonKey}
เช่น
function.response.message
การทำงาน
เรียกใช้
เรียกใช้ฟังก์ชันระบบคลาวด์
ปัจจุบันส่วนขยายนี้รองรับการเรียกใช้ฟังก์ชันทริกเกอร์ HTTP
ไวยากรณ์
<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>
ตัวอย่าง
<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>
พารามิเตอร์คำขอ
พารามิเตอร์ | คำอธิบาย | ประเภท | ค่าเริ่มต้น | ต้องระบุ |
---|---|---|---|---|
ภูมิภาค | ภูมิภาคของ Google Cloud ที่มีการทำให้ฟังก์ชันใช้งานได้ | สตริง | ไม่มี | ได้ |
projectId | รหัสโปรเจ็กต์ GCP | สตริง | ไม่มี | ได้ |
functionName | ชื่อของฟังก์ชัน HTTP ที่จะเรียกใช้ นี่คือชื่อที่คุณใช้เมื่อสร้างฟังก์ชัน (ไม่จำเป็นต้องเป็นชื่อจากโค้ดของฟังก์ชัน) | สตริง | ไม่มี | ได้ |
method | เมธอด HTTP ที่จะใช้เมื่อเรียกใช้ฟังก์ชัน | สตริง | GET |
ไม่ |
เปย์โหลด | เพย์โหลดที่จะส่งด้วยการเรียกใช้ฟังก์ชัน | JSON | ไม่มี | ไม่ |
คำตอบ
ค่าการตอบสนองของฟังก์ชันที่ระบุ หากมี
พร็อพเพอร์ตี้ของคำตอบ
ไม่มี
ข้อมูลอ้างอิงการกำหนดค่า
ใช้สิ่งต่อไปนี้เมื่อคุณกำหนดค่าและทำให้ส่วนขยายนี้ใช้งานได้เพื่อใช้ในพร็อกซี API โปรดดูขั้นตอนการกำหนดค่าส่วนขยายโดยใช้คอนโซล Apigee ที่หัวข้อการเพิ่มและกำหนดค่าส่วนขยาย
คุณสมบัติทั่วไปของส่วนขยาย
พร็อพเพอร์ตี้ต่อไปนี้มีอยู่ในส่วนขยายทุกรายการ
พร็อพเพอร์ตี้ | คำอธิบาย | ค่าเริ่มต้น | ต้องระบุ |
---|---|---|---|
name |
ชื่อที่คุณกําหนดให้การกําหนดค่านี้ของส่วนขยาย | ไม่มี | ได้ |
packageName |
ชื่อแพ็กเกจส่วนขยายที่ระบุโดย Apigee Edge | ไม่มี | ได้ |
version |
หมายเลขเวอร์ชันของแพ็กเกจส่วนขยายที่คุณกําหนดค่าส่วนขยาย | ไม่มี | ได้ |
configuration |
ค่าการกําหนดค่าเฉพาะสําหรับส่วนขยายที่คุณกําลังเพิ่ม ดูพร็อพเพอร์ตี้สําหรับแพ็กเกจส่วนขยายนี้ | ไม่มี | ได้ |
พร็อพเพอร์ตี้ของแพ็กเกจส่วนขยายนี้
ระบุค่าสำหรับพร็อพเพอร์ตี้การกำหนดค่าต่อไปนี้เฉพาะสำหรับส่วนขยายนี้
พร็อพเพอร์ตี้ | คำอธิบาย | ค่าเริ่มต้น | ต้องระบุ |
---|---|---|---|
ข้อมูลเข้าสู่ระบบ | เมื่อป้อนในคอนโซล Apigee Edge นี่จะเป็นเนื้อหาในไฟล์คีย์บัญชีบริการของคุณ เมื่อส่งผ่าน API การจัดการ ค่านี้จะเป็นค่าที่เข้ารหัสฐาน 64 ซึ่งสร้างขึ้นจากไฟล์คีย์บัญชีบริการ | ไม่มี | ได้ |