การใช้ตัวแปรโฟลว์

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่ เอกสารประกอบของ Apigee X
info

Conceptually, ตัวแปรโฟลว์เป็นออบเจ็กต์ที่คุณเข้าถึงได้จากภายในนโยบายหรือ ยูทิลิตี (เช่น เครื่องมือ Trace) ซึ่งช่วยให้คุณรักษาสถานะที่เชื่อมโยงกับธุรกรรม API ที่ Apigee Edge ประมวลผลได้

ตัวแปรโฟลว์คืออะไร

ตัวแปรโฟลว์อยู่ในบริบทของโฟลว์พร็อกซี API และติดตามสถานะในธุรกรรม API ในลักษณะเดียวกับที่ตัวแปรที่มีชื่อติดตามสถานะในโปรแกรมซอฟต์แวร์ ตัวแปรโฟลว์จะจัดเก็บ ข้อมูลต่อไปนี้

  • ที่อยู่ IP, ส่วนหัว, เส้นทาง URL และเพย์โหลดที่ส่งจากแอปที่ส่งคำขอ
  • ข้อมูลระบบ เช่น วันที่และเวลาที่ Edge ได้รับคำขอ
  • ข้อมูลที่ได้เมื่อนโยบายทำงาน เช่น หลังจากนโยบายที่ตรวจสอบโทเค็น OAuth ทำงาน Edge จะสร้างตัวแปรโฟลว์ที่เก็บข้อมูล เช่น ชื่อแอปพลิเคชันที่ส่งคำขอ
  • ข้อมูลเกี่ยวกับการตอบกลับจากระบบเป้าหมาย

ตัวแปรบางรายการ "มากับระบบ" ของ Edge และระบบจะป้อนข้อมูลโดยอัตโนมัติทุกครั้งที่ได้รับคำขอ API โดยตัวแปรเหล่านี้จะพร้อมใช้งานตลอดธุรกรรม API นอกจากนี้ คุณยังสร้างตัวแปรที่กำหนดเองได้โดยใช้นโยบาย เช่น นโยบาย AssignMessage หรือในโค้ด JavaScript, Node.js และ Java

คุณจะเห็นว่าตัวแปรมีขอบเขต และตำแหน่งที่เข้าถึงได้จะขึ้นอยู่กับเวลาที่ตัวแปร ถูกสร้างขึ้นในโฟลว์พร็อกซี API โดยทั่วไป เมื่อสร้างตัวแปรแล้ว ตัวแปรนั้นจะพร้อมใช้งานสำหรับ นโยบายและโค้ดทั้งหมดที่ทำงานในภายหลังในโฟลว์ธุรกรรม API

มีการใช้ตัวแปรโฟลว์อย่างไร

ตัวแปรโฟลว์ใช้ใน นโยบาย และ โฟลว์แบบมีเงื่อนไข

  • นโยบาย สามารถดึงข้อมูลสถานะจากตัวแปรโฟลว์และใช้ตัวแปรเหล่านั้นในการทำงานได้

    ตัวอย่างเช่น นโยบาย VerifyJWT สามารถดึงโทเค็นที่จะตรวจสอบจาก ตัวแปรโฟลว์ แล้วทำการตรวจสอบโทเค็นนั้น อีกตัวอย่างหนึ่งคือa นโยบาย JavaScript สามารถดึงตัวแปรโฟลว์และเข้ารหัสข้อมูลที่อยู่ใน ตัวแปรเหล่านั้นได้

  • โฟลว์แบบมีเงื่อนไข สามารถอ้างอิงตัวแปรโฟลว์เพื่อกำหนดเส้นทางของ API ผ่าน Edge ได้ ซึ่งคล้ายกับวิธีที่คำสั่ง Switch ทำงานในการเขียนโปรแกรม

    ตัวอย่างเช่น นโยบายในการแสดงข้อผิดพลาดอาจทำงานก็ต่อเมื่อมีการตั้งค่าตัวแปรโฟลว์ที่เฉพาะเจาะจง สุดท้าย คุณสามารถรับและตั้งค่าตัวแปรโฟลว์ในแอปพลิเคชันเป้าหมาย Node.js ได้

มาดูตัวอย่างวิธีใช้ตัวแปรในแต่ละบริบทเหล่านี้กัน

ตัวแปรโฟลว์ในนโยบาย

นโยบายบางรายการใช้ตัวแปรโฟลว์ เป็นอินพุต

ตัวอย่างเช่น นโยบาย AssignMessage ต่อไปนี้จะใช้ ค่าของตัวแปรโฟลว์ client.ip และใส่ค่าดังกล่าวในส่วนหัวของคำขอ ที่ชื่อว่า My-Client-IP หากเพิ่มลงในโฟลว์ คำขอ นโยบายนี้จะตั้งค่าส่วนหัว ที่จะส่งไปยังเป้าหมายแบ็กเอนด์ หากตั้งค่าในโฟลว์ การตอบกลับ ระบบจะส่งส่วนหัว กลับไปยังแอปไคลเอ็นต์

<AssignMessage name="set-ip-in-header">
    <AssignTo createNew="false" transport="http" type="request">request</AssignTo>
    <Set>
        <Headers>
            <Header name="My-Client-IP">{client.ip}</Header>
        </Headers>
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</AssignMessage>

อีกตัวอย่างหนึ่งคือ เมื่อนโยบาย โควตา ทำงาน ระบบจะป้อนค่าที่เกี่ยวข้องกับนโยบายลงในตัวแปรโฟลว์หลายรายการ ตัวแปรหนึ่งในตัวแปรเหล่านี้เรียกว่า ratelimit.my-quota-policy.used.count (โดย my-quota-policy คือชื่อนโยบายโควตาที่คุณสนใจ)

ต่อมาคุณอาจเรียกใช้โฟลว์แบบมีเงื่อนไข ที่ระบุว่า "หากจำนวนโควตาปัจจุบันต่ำกว่า 50% ของจำนวนโควตาสูงสุด และเป็นเวลาตั้งแต่ 9:00 น. ถึง 17:00 น. ให้บังคับใช้โควตาอื่น" เงื่อนไขนี้อาจขึ้นอยู่กับค่าของจำนวนโควตาปัจจุบัน และตัวแปรโฟลว์ที่ชื่อว่า system.time ซึ่งเป็นหนึ่งในตัวแปร Edge ที่มากับระบบ

ตัวแปรโฟลว์ในโฟลว์แบบมีเงื่อนไข

โฟลว์แบบมีเงื่อนไข จะประเมินตัวแปรโฟลว์และช่วยให้พร็อกซีทำงานแบบไดนามิกได้ โดยปกติแล้ว เงื่อนไขจะใช้เพื่อเปลี่ยนลักษณะการทำงานของโฟลว์ ขั้นตอน และกฎเส้นทาง

ต่อไปนี้เป็นโฟลว์แบบมีเงื่อนไขที่ประเมิน ค่าของตัวแปร request.verb ในขั้นตอนโฟลว์พร็อกซี ในกรณีนี้ หากคำกริยาของคำขอคือ POST ระบบจะเรียกใช้นโยบาย VerifyAPIKey policy ซึ่งเป็นรูปแบบทั่วไปที่ใช้ในการกำหนดค่าพร็อกซี API

<PreFlow name="PreFlow">
    <Request>
        <Step>
            <Condition>request.verb equals "POST"</Condition>
            <Name>VerifyApiKey</Name>
        </Step>
    </Request>
</PreFlow>

ตอนนี้คุณอาจสงสัยว่าตัวแปรต่างๆ เช่น request.verb, client.ip, และ system.time มาจากไหน ระบบจะสร้างอินสแตนซ์และ ป้อนค่าลงในตัวแปรเหล่านี้เมื่อใด หากต้องการทำความเข้าใจว่าระบบจะสร้างตัวแปรเมื่อใดและตัวแปรจะ พร้อมใช้งานเมื่อใด โปรดดูหัวข้อทำความเข้าใจขอบเขตของตัวแปรโฟลว์

ตัวแปรโฟลว์ในโค้ด JavaScript ที่เรียกใช้ด้วยนโยบาย JavaScript

ด้วยนโยบาย JavaScript คุณสามารถเรียกใช้โค้ด JavaScript ได้จากภายในบริบทของ โฟลว์พร็อกซี API JavaScript ที่นโยบายนี้เรียกใช้จะใช้ โมเดลออบเจ็กต์ JavaScript ของ Apigee ซึ่ง ให้สิทธิ์เข้าถึงโค้ดที่กำหนดเองไปยังออบเจ็กต์คำขอ การตอบกลับ และบริบทที่เชื่อมโยงกับ โฟลว์พร็อกซี API ที่โค้ดของคุณกำลังทำงานอยู่ ตัวอย่างเช่น โค้ดนี้จะตั้งค่าส่วนหัวการตอบกลับ ด้วยค่าที่ได้จากตัวแปรโฟลว์ target.name

context.setVariable("response.header.X-Apigee-Target", context.getVariable("target.name"));

เทคนิคการใช้ JavaScript เพื่ออ่านและตั้งค่าตัวแปรนี้คล้ายกับงานที่คุณทำได้ ด้วย นโยบาย AssignMessage (ที่แสดงไว้ก่อนหน้านี้) ซึ่งเป็นอีกวิธีหนึ่งในการทำสิ่งต่างๆ แบบเดียวกันใน Edge สิ่งสำคัญที่ควรจดจำคือ JavaScript ที่นโยบาย JavaScript เรียกใช้ จะเข้าถึงตัวแปรโฟลว์ทั้งหมดที่มีอยู่และอยู่ใน ขอบเขต ภายในโฟลว์พร็อกซี API ได้

ตัวแปรโฟลว์ในโค้ด Node.js

การกำหนดให้ใช้โมดูล apigee-access จะช่วยให้คุณตั้งค่าและเข้าถึงตัวแปรโฟลว์ได้จาก ภายในโค้ด Node.js ที่ติดตั้งใช้งานใน Edge

ต่อไปนี้เป็นตัวอย่างง่ายๆ ที่ตั้งค่าตัวแปรที่ชื่อว่า custom.foo เป็นค่า Bar เมื่อตั้งค่าแล้ว ตัวแปรใหม่นี้จะพร้อมใช้งานสำหรับนโยบายหรือโค้ดอื่นๆ ที่เกิดขึ้นในโฟลว์พร็อกซีหลังจากที่โค้ด Node.js ทำงาน

var http = require('http');
var apigee = require('apigee-access');

http.createServer(function (request, response) {
  apigee.setVariable(request, "custom.foo", "Bar");
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World\n');
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');

อ่านเพิ่มเติมเกี่ยวกับการใช้ apigee-access เพื่อทำงานกับตัวแปรได้ในหัวข้อการเข้าถึงตัวแปรโฟลว์ใน Node.js

ทำความเข้าใจขอบเขตของตัวแปรโฟลว์

ขอบเขต ของตัวแปรเกี่ยวข้องกับโฟลว์หรือ "วงจรชีวิต" โดยรวมของการเรียกพร็อกซี API

การแสดงภาพโฟลว์ของพร็อกซี API

หากต้องการทำความเข้าใจขอบเขตของตัวแปรโฟลว์ คุณต้องทำความเข้าใจหรือแสดงภาพวิธีที่ข้อความ ไหลผ่านพร็อกซี API พร็อกซี API ประกอบด้วยชุดขั้นตอนการประมวลผลข้อความ ที่จัดระเบียบเป็นโฟลว์ ในทุกขั้นตอนของโฟลว์พร็อกซี พร็อกซีจะประเมินข้อมูลที่พร้อมใช้งานสำหรับ และตัดสินใจว่าจะทำอะไรต่อไป ระหว่างทาง พร็อกซีอาจเรียกใช้ โค้ดนโยบาย หรือทำการ แยกสาขาแบบมีเงื่อนไข

รูปภาพต่อไปนี้แสดงลำดับโฟลว์นี้ โปรดสังเกตว่าโฟลว์ประกอบด้วย 4 ส่วนหลัก ได้แก่ ProxyEndpoint คำขอ, TargetEndpoint คำขอ, TargetEndpoint การตอบกลับ และ ProxyEndpoint การตอบกลับ

โปรดจดจำโครงสร้างโฟลว์นี้ไว้ในใจขณะที่เราเริ่มสำรวจตัวแปรโฟลว์ในส่วนที่เหลือของ หัวข้อนี้

วิธีที่ขอบเขตของตัวแปรเกี่ยวข้องกับโฟลว์พร็อกซี

เมื่อคุณแสดงภาพวิธีที่ข้อความไหลผ่านพร็อกซีได้ตามที่อธิบายไว้ก่อนหน้านี้ คุณ จะเริ่มทำความเข้าใจขอบเขตของตัวแปรได้ ขอบเขตในที่นี้หมายถึงจุดในวงจรชีวิตของโฟลว์พร็อกซี ที่ระบบสร้างอินสแตนซ์ตัวแปรเป็นครั้งแรก

ตัวอย่างเช่น หากคุณมีนโยบายที่แนบกับส่วนคำขอ ProxyEndpoint นโยบายนั้นจะเข้าถึงตัวแปรใดๆ ที่กำหนดขอบเขตไว้ที่ส่วนคำขอ TargetEndpoint ไม่ได้ เนื่องจากส่วนคำขอ TargetEndpoint ของโฟลว์ยังไม่ได้ทำงาน พร็อกซี API จึงยังไม่มีโอกาสที่จะ ป้อนข้อมูลลงในตัวแปรในขอบเขตนั้น

ตารางต่อไปนี้แสดงชุดขอบเขตของตัวแปรทั้งหมดและระบุเวลาที่ตัวแปรพร้อมใช้งานในโฟลว์พร็อกซี

ขอบเขตของตัวแปร ตำแหน่งที่ป้อนข้อมูลลงในตัวแปรเหล่านี้
คำขอพร็อกซี ส่วนคำขอ ProxyEndpoint
คำขอเป้าหมาย ส่วนคำขอ TargetEndpoint
การตอบกลับเป้าหมาย ส่วนการตอบกลับ TargetEndpoint
การตอบกลับพร็อกซี ส่วนการตอบกลับ ProxyEndpoint
พร้อมใช้งานเสมอ ทันทีที่พร็อกซีได้รับคำขอ ตัวแปรเหล่านี้จะพร้อมใช้งานตลอด วงจรชีวิตของโฟลว์พร็อกซี

ตัวอย่างเช่น Edge มีตัวแปรที่มากับระบบที่ชื่อว่า client.ip ตัวแปรนี้มี "ขอบเขตคำขอพร็อกซี" ระบบจะป้อนข้อมูลที่อยู่ IP ของไคลเอ็นต์ที่ เรียกพร็อกซีลงในตัวแปรนี้โดยอัตโนมัติ ระบบจะป้อนข้อมูลเมื่อคำขอเข้าถึง ProxyEndpoint เป็นครั้งแรก และตัวแปรนี้จะยังคง พร้อมใช้งานตลอดวงจรชีวิตของโฟลว์พร็อกซี

นอกจากนี้ยังมีตัวแปรในตัวอีกตัวหนึ่งที่ชื่อว่า target.url ตัวแปรนี้มีขอบเขต "คำขอเป้าหมาย" ระบบจะป้อนข้อมูล URL คำขอที่ส่ง ไปยังเป้าหมายแบ็กเอนด์ลงในตัวแปรนี้ในส่วนคำขอ TargetEndpoint หากพยายามเข้าถึง target.url ในส่วนคำขอ ProxyEndpoint คุณจะได้รับค่า NULL หากพยายามตั้งค่าตัวแปรนี้ก่อนที่ตัวแปรจะอยู่ในขอบเขต พร็อกซีจะไม่ทำอะไรเลย ไม่สร้างข้อผิดพลาดและไม่ตั้งค่าตัวแปร

ต่อไปนี้เป็นตัวอย่างง่ายๆ ที่แสดงวิธีคิดเกี่ยวกับขอบเขตของตัวแปร สมมติว่าคุณต้องการ คัดลอกเนื้อหาทั้งหมดของออบเจ็กต์คำขอ (ส่วนหัว, พารามิเตอร์, เนื้อหา) และกำหนดเนื้อหาดังกล่าวให้กับ เพย์โหลดการตอบกลับที่จะส่งกลับไปยังแอปที่เรียกใช้ คุณสามารถใช้ นโยบาย AssignMessage สำหรับ งานนี้ได้ โค้ดนโยบายจะมีลักษณะดังนี้

<AssignMessage name="CopyRequestToResponse">
    <AssignTo type="response" createNew="false">response</AssignTo>
    <Copy source="request"/>
</AssignMessage>

นโยบายนี้จะคัดลอกออบเจ็กต์ request และกำหนดให้กับออบเจ็กต์ response แต่คุณควรวางนโยบายนี้ไว้ที่ใดในโฟลว์พร็อกซี คำตอบคือคุณต้องวางนโยบายนี้ไว้ในการตอบกลับ TargetEndpoint เนื่องจากขอบเขตของตัวแปรการตอบกลับคือ "การตอบกลับเป้าหมาย"

การอ้างอิงตัวแปรโฟลว์

ตัวแปรที่มากับระบบทั้งหมดใน Apigee Edge ใช้รูปแบบการตั้งชื่อแบบ Dot Notation รูปแบบนี้ ช่วยให้กำหนดวัตถุประสงค์ของตัวแปรได้ง่ายขึ้น เช่น system.time.hour และ request.content

Apigee สงวนคำนำหน้าต่างๆ ไว้เพื่อจัดระเบียบตัวแปรที่เกี่ยวข้องอย่างเหมาะสม คำนำหน้าเหล่านี้ ได้แก่

  • request
  • response
  • system
  • target

หากต้องการอ้างอิงตัวแปรในนโยบาย ให้ใส่ตัวแปรไว้ในวงเล็บปีกกา ตัวอย่างเช่น นโยบาย AssignMessage ต่อไปนี้จะใช้ค่าของตัวแปร client.ip และ ใส่ค่าดังกล่าวในส่วนหัวของคำขอที่ชื่อว่า Client-IP

<AssignMessage name="set-ip-in-header">
    <AssignTo createNew="false" transport="http" type="request">request</AssignTo>
    <Set>
        <Headers>
            <Header name="Client-IP">{client.ip}</Header>
        </Headers>
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</AssignMessage>

ในโฟลว์แบบมีเงื่อนไข คุณไม่จำเป็นต้องใช้วงเล็บปีกกา เงื่อนไขตัวอย่างต่อไปนี้ จะประเมินตัวแปร request.header.accept

<Step>
    <Condition>request.header.accept = "application/json"</Condition>
    <Name>XMLToJSON</Name>
</Step>

นอกจากนี้ คุณยังอ้างอิงตัวแปรโฟลว์ในโค้ด JavaScript และ Java ได้ด้วย ดูข้อมูลเพิ่มเติมได้ที่

ประเภทข้อมูลของตัวแปรโฟลว์

พร็อพเพอร์ตี้แต่ละรายการของตัวแปรโฟลว์มีประเภทข้อมูลที่กำหนดไว้อย่างชัดเจน เช่น สตริง, Long, จำนวนเต็ม, บูลีน หรือคอลเล็กชัน คุณจะเห็นประเภทข้อมูลที่แสดงอยู่ใน ข้อมูลอ้างอิงตัวแปรโฟลว์ สำหรับตัวแปรที่สร้างโดยนโยบาย โปรดดูหัวข้อข้อมูลอ้างอิงนโยบายที่เฉพาะเจาะจงเพื่อดูข้อมูลประเภทข้อมูล

ตัวแปรที่คุณสร้างขึ้นด้วยตนเองจะใช้ประเภทที่กำหนดเมื่อสร้างตัวแปร และขึ้นอยู่ กับประเภทของค่าที่อนุญาต ตัวอย่างเช่น ตัวแปรที่สร้างในโค้ด Node.js จะ จำกัดไว้ที่ตัวเลข สตริง บูลีน ค่าว่าง หรือไม่ได้กำหนด

การใช้ตัวแปรโฟลว์ในนโยบาย

นโยบายหลายรายการสร้างตัวแปรโฟลว์เป็นส่วนหนึ่งของการทำงานปกติ เอกสารข้อมูลอ้างอิงนโยบายจะแสดงตัวแปรที่เฉพาะเจาะจงกับนโยบายเหล่านี้ทั้งหมด

เมื่อทำงานกับพร็อกซีและนโยบาย โปรดดูข้อมูลอ้างอิงนโยบาย เพื่อดูว่าระบบสร้างตัวแปรใดบ้างและตัวแปรเหล่านั้นใช้ทำอะไร ตัวอย่างเช่น นโยบายโควตาจะสร้างชุดตัวแปรที่มีข้อมูลเกี่ยวกับจำนวนและขีดจำกัดของโควตา เวลาหมดอายุ และอื่นๆ

ตัวแปรนโยบายบางรายการมีประโยชน์สำหรับการแก้ไขข้อบกพร่อง ตัวอย่างเช่น คุณสามารถใช้เครื่องมือ Trace tool เพื่อ ดูว่าระบบตั้งค่าตัวแปรใดบ้างในอินสแตนซ์ที่เฉพาะเจาะจงในโฟลว์พร็อกซี

นโยบาย ExtractVariables ช่วยให้คุณป้อนข้อมูลที่ดึงมาจากข้อความลงในตัวแปรที่กำหนดเองได้ คุณสามารถดึงพารามิเตอร์การค้นหา ส่วนหัว และข้อมูลอื่นๆ ได้ ตัวอย่างเช่น คุณสามารถแยกวิเคราะห์ข้อความคำขอและการตอบกลับ โดยใช้รูปแบบเพื่อดึงข้อมูลที่เฉพาะเจาะจงจากข้อความ

ในตัวอย่างต่อไปนี้ Extract Variables จะแยกวิเคราะห์ข้อความการตอบกลับและจัดเก็บข้อมูลที่เฉพาะเจาะจง ที่นำมาจากการตอบกลับ นโยบายจะสร้างตัวแปรที่กำหนดเอง 2 ตัว ได้แก่ geocoderesponse.latitude และ geocoderesponse.longitude แล้วกำหนด ค่าให้กับตัวแปรเหล่านั้น

<ExtractVariables name="ParseGeocodingResponse">
  <Source>response</Source>
  <VariablePrefix>geocoderesponse</VariablePrefix>
  <JSONPayload>
    <Variable name="latitude">
      <JSONPath>$.results[0].geometry.location.lat</JSONPath>
    </Variable>
    <Variable name="longitude">
      <JSONPath>$.results[0].geometry.location.lng</JSONPath>
    </Variable>
  </JSONPayload>
</ExtractVariables>

โปรดทราบว่านโยบายหลายรายการสร้างตัวแปรโดยอัตโนมัติ คุณสามารถเข้าถึงตัวแปรเหล่านั้นได้ภายในบริบทโฟลว์พร็อกซี และระบบจะบันทึกตัวแปรเหล่านั้นไว้ในข้อมูลอ้างอิงนโยบายในหัวข้อนโยบายแต่ละรายการ

การทำงานกับตัวแปรโฟลว์ในโค้ด JavaScript

คุณสามารถเข้าถึงและตั้งค่าตัวแปรได้โดยตรงในโค้ด JavaScript ที่ทำงานในบริบท ของพร็อกซี API JavaScript ที่ทำงานใน Edge จะเข้าถึงตัวแปรโฟลว์พร็อกซีได้โดยตรงผ่านโมเดลออบเจ็กต์ JavaScript ของ Apigee

หากต้องการเข้าถึงตัวแปรในโค้ด JavaScript ให้เรียกใช้เมธอด Getter/Setter ในออบเจ็กต์ต่อไปนี้

  • context
  • proxyRequest
  • proxyResponse
  • targetRequest
  • targetResponse

คุณจะเห็นว่าข้อมูลอ้างอิงออบเจ็กต์เหล่านี้แมปกับส่วนที่คุ้นเคยของโมเดลโฟลว์พร็อกซี ตามที่อธิบายไว้ก่อนหน้านี้ในหัวข้อการแสดงภาพโฟลว์ของพร็อกซี API

ออบเจ็กต์ context สอดคล้องกับตัวแปรที่พร้อมใช้งาน "ทั่วโลก" เช่น ตัวแปรระบบ ตัวอย่างเช่น คุณสามารถเรียกใช้ getVariable() ในออบเจ็กต์ context เพื่อรับปีปัจจุบันได้ดังนี้

var year = context.getVariable('system.time.year');

ในทำนองเดียวกัน คุณสามารถเรียกใช้ setVariable() เพื่อตั้งค่าตัวแปรที่กำหนดเองหรือสำหรับ ตัวแปรที่มากับระบบซึ่ง เขียนได้ ในตัวอย่างนี้ เราจะสร้างตัวแปรที่กำหนดเองที่ชื่อว่า organization.name.myorg และกำหนดค่าให้กับตัวแปรดังกล่าว

var org = context.setVariable('organization.name.myorg', value);

เนื่องจากตัวแปรนี้สร้างขึ้นด้วยออบเจ็กต์ context ตัวแปรนี้จึงพร้อมใช้งานสำหรับ ส่วนโฟลว์ทั้งหมด (โดยพื้นฐานแล้ว การดำเนินการนี้จะคล้ายกับการสร้างตัวแปรส่วนกลาง)

นอกจากนี้ คุณยังรับ/ตั้งค่าตัวแปรโฟลว์พร็อกซีในโค้ด Java ที่เรียกใช้ด้วย นโยบาย JavaCallout ได้ด้วย

การเข้าถึงตัวแปรโฟลว์ในแอปพลิเคชัน Node.js

คุณสามารถรับ ตั้งค่า และลบตัวแปรโฟลว์จากโค้ด Node.js ที่ติดตั้งใช้งานใน Edge ได้ สิ่งที่คุณต้องทำคือ "กำหนดให้ใช้" โมดูล apigee-access ในโค้ด ดูรายละเอียดได้ที่ การเข้าถึงตัวแปรโฟลว์ใน Node.js

สิ่งที่คุณต้องจดจำ

สิ่งสำคัญที่ควรจดจำเกี่ยวกับตัวแปรโฟลว์มีดังนี้

  • พร็อกซีจะสร้างอินสแตนซ์และป้อนข้อมูลลงในตัวแปร "ที่มากับระบบ" บางรายการโดยอัตโนมัติ ซึ่งมีการบันทึกไว้ในข้อมูลอ้างอิงตัวแปรโฟลว์
  • คุณสามารถสร้างตัวแปรที่กำหนดเองซึ่งพร้อมใช้งานสำหรับใช้ในโฟลว์พร็อกซี คุณสร้างตัวแปรได้โดยใช้นโยบาย เช่น นโยบาย AssignMessage และ นโยบาย JavaScript รวมถึงในโค้ด Node.js
  • ตัวแปรมีขอบเขต ตัวอย่างเช่น ระบบจะป้อนข้อมูลลงในตัวแปรบางรายการโดยอัตโนมัติเมื่อ พร็อกซีแรกได้รับคำขอจากแอป ส่วนตัวแปรอื่นๆ จะมีการป้อนข้อมูลในส่วนโฟลว์การตอบกลับ ของพร็อกซี ตัวแปรการตอบกลับเหล่านี้จะยังคงไม่ได้กำหนดไว้จนกว่าส่วนการตอบกลับจะทำงาน
  • เมื่อนโยบายทำงาน นโยบายจะสร้างและป้อนข้อมูลลงในตัวแปรที่เฉพาะเจาะจงกับนโยบาย เอกสารประกอบของนโยบายแต่ละรายการจะแสดงตัวแปรที่เฉพาะเจาะจงกับนโยบายที่เกี่ยวข้องทั้งหมด
  • โดยปกติแล้ว โฟลว์แบบมีเงื่อนไขจะประเมินตัวแปรอย่างน้อย 1 รายการ คุณต้องทำความเข้าใจ ตัวแปรหากต้องการสร้างโฟลว์แบบมีเงื่อนไข
  • นโยบายหลายรายการใช้ตัวแปรเป็นอินพุตหรือเอาต์พุต ตัวแปรที่นโยบายหนึ่งสร้างขึ้นอาจถูกนโยบายอื่นใช้ในภายหลัง
  • คุณสามารถรับและตั้งค่าตัวแปรโฟลว์หลายรายการจากภายใน Node.js ได้โดยใช้ JavaScript โดยตรง (และโมเดลออบเจ็กต์ JavaScriptของเรา) หรือนโยบาย JavaCallout ซึ่งเรียกใช้โค้ด ใน Edge

ตัวอย่างโค้ดที่เกี่ยวข้อง

ตัวอย่างพร็อกซี API อยู่ใน GitHub และดาวน์โหลดและใช้งานได้ง่าย ดูข้อมูลเกี่ยวกับการดาวน์โหลดและใช้ตัวอย่างได้ที่หัวข้อการใช้ตัวอย่างพร็อกซี APIสำหรับ ดูคำอธิบายตัวอย่างพร็อกซี API และสิ่งที่ตัวอย่างเหล่านั้นทำได้ที่หัวข้อรายการตัวอย่าง

ตัวอย่างพร็อกซีที่มีการใช้ตัวแปรและการประมวลผลตัวแปร ได้แก่

  • variables - แสดงวิธีดึงและตั้งค่าตัวแปรตามเนื้อหาข้อความการขนส่ง รวมถึงเนื้อหาข้อความ JSON และ XML
  • policy-mashup-cookbook - แอปพลิเคชันที่สมบูรณ์ซึ่งใช้การประกอบนโยบายเพื่อเรียกใช้ API สาธารณะ 2 รายการ รวมผลลัพธ์ และสร้างการตอบกลับที่สมบูรณ์สำหรับแอปไคลเอ็นต์ ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวอย่างนี้ได้ที่หัวข้อการใช้การประกอบ นโยบาย
  • conditional-policy - บังคับใช้นโยบายแบบมีเงื่อนไขอย่างง่ายโดยอิงตามค่าตัวแปร

หัวข้อที่เกี่ยวข้อง

  • ตัวแปรทั้งหมดที่ระบบป้อนข้อมูลโดยอัตโนมัติในพร็อกซี API จะแสดงอยู่ใน ข้อมูลอ้างอิงตัวแปรโฟลว์ นอกจากนี้ ข้อมูลอ้างอิงยังแสดงประเภทและขอบเขตของตัวแปรแต่ละรายการด้วย
  • หากต้องการทราบว่านโยบายที่เฉพาะเจาะจงป้อนข้อมูลลงในตัวแปรใดบ้าง โปรดดูหัวข้อข้อมูลอ้างอิง สำหรับนโยบายนั้น ตัวอย่างเช่น ดู ตัวแปรโฟลว์ใน ข้อมูลอ้างอิงนโยบายโควตา