আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
সংস্করণ ১.৪.১
ক্লাউড স্প্যানার ডেটাবেসে ইনসার্ট, কোয়েরি এবং আপডেট অপারেশন সম্পাদন করুন।
এই বিষয়বস্তুটি এই এক্সটেনশনটি কনফিগার এবং ব্যবহার করার জন্য নির্দেশিকা প্রদান করে। ExtensionCallout পলিসি ব্যবহার করে একটি এপিআই প্রক্সি থেকে এক্সটেনশনটি ব্যবহার করার আগে, আপনাকে অবশ্যই:
“ইনস্ট্যান্স তৈরি ও পরিচালনা” অংশে বর্ণিত পদ্ধতি অনুসারে একটি ক্লাউড স্প্যানার ইনস্ট্যান্স এবং একটি ডাটাবেস তৈরি করুন।
আপনার কাছে ইনস্ট্যান্স এবং একটি ডেটাবেস থাকলে, আপনার এক্সটেনশনের প্রতিনিধিত্বকারী GCP সার্ভিস অ্যাকাউন্টকে আপনার ডেটাবেস অ্যাক্সেস করার অনুমতি দিন । কোন রোল ব্যবহার করতে হবে সে সম্পর্কে আরও জানতে, ক্লাউড স্প্যানার রোলস দেখুন। ক্লাউড স্প্যানার অ্যাক্সেস কন্ট্রোল সম্পর্কে আরও জানতে, ক্লাউড স্প্যানারের জন্য আইএএম রোল এবং অ্যাক্সেস কন্ট্রোল প্রয়োগ করা দেখুন।
আপনার ডাটাবেসে কাঙ্ক্ষিত স্তরের অ্যাক্সেসের অনুমতি আছে এমন কোনো সার্ভিস অ্যাকাউন্ট থাকলে, সেই সার্ভিস অ্যাকাউন্টের জন্য একটি কী (key) তৈরি করতে GCP কনসোল ব্যবহার করুন । এই এক্সটেনশনটি কনফিগার করার সময়, প্রাপ্ত কী JSON ফাইলের বিষয়বস্তু ব্যবহার করুন।
কনফিগারেশন রেফারেন্স ব্যবহার করে এক্সটেনশনটি যোগ ও কনফিগার করার সময়, প্রাপ্ত কী JSON ফাইলের বিষয়বস্তু ব্যবহার করুন।
ক্লাউড স্প্যানার সম্পর্কে
ক্লাউড স্প্যানার একটি রিলেশনাল ডাটাবেস পরিষেবা, যা রিলেশনাল, স্ট্রাকচার্ড এবং সেমি-স্ট্রাকচার্ড ডেটার জন্য উপযোগী, যেগুলোর উচ্চ প্রাপ্যতা, শক্তিশালী সামঞ্জস্য এবং লেনদেনমূলক পঠন ও লিখন প্রয়োজন।
আপনি যদি ক্লাউড স্প্যানার ব্যবহার সবে শুরু করে থাকেন, তাহলে ক্লাউড স্প্যানার ডকুমেন্টেশনে থাকা কুইকস্টার্টটি শুরু করার জন্য একটি ভালো জায়গা।
নমুনা
নিম্নলিখিত উদাহরণগুলিতে ExtensionCallout পলিসি ব্যবহার করে ক্লাউড স্প্যানার এক্সটেনশন অ্যাকশনের জন্য সাপোর্ট কীভাবে কনফিগার করতে হয় তা দেখানো হয়েছে।
ডেটা যোগ করুন
নিম্নলিখিত উদাহরণে, এক্সটেনশনটির insert অ্যাকশন ইউজার টেবিলে একজন নতুন ইউজার যুক্ত করে।
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Insert-New-User">
<DisplayName>Insert New User</DisplayName>
<Connector>spanner-users-products</Connector>
<Action>insert</Action>
<Input><![CDATA[{
"tableName" : "user",
"rows" : [{
"username": "jonesy42",
"firstName": "Floyd",
"lastName": "Jones",
"address": "3695 Auctor Street",
"city": "Gresham",
"region": "OR",
"postalCode": "12693",
"email": "floydster@example.com"
}]
}]]></Input>
</ConnectorCallout>
ডেটা পান
এই উদাহরণে, একটি কোয়েরি user টেবিল থেকে ইউজারনেম এবং ইমেইল ভ্যালুগুলো পুনরুদ্ধার করে।
প্রথমত, একটি AssignMessage পলিসি কোয়েরির WHERE ক্লজে ব্যবহারের জন্য একটি postal.code.value ভ্যারিয়েবল নির্ধারণ করে। এটি একটি উদাহরণ। আপনার পলিসি সম্ভবত ক্লায়েন্টের অনুরোধের প্যারামিটারের উপর ভিত্তি করে মানটি সেট করবে।
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Postal-Code">
<AssignTo createNew="true" transport="http" type="request"/>
<AssignVariable>
<Name>postal.code</Name>
<Value>86519</Value>
</AssignVariable>
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</AssignMessage>
নিম্নলিখিত ExtensionCallout পলিসিটি WHERE ক্লজে postal.code.value ভেরিয়েবলের বিষয়বস্তু ব্যবহার করে ডাটাবেসের বিরুদ্ধে একটি কোয়েরি সম্পাদন করে।
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Get-User-Data">
<DisplayName>Get User Data</DisplayName>
<Connector>spanner-users-products</Connector>
<Action>querySQL</Action>
<Input><![CDATA[{
"sql" : "SELECT username, email FROM user WHERE postalCode = @postalCode",
"params" : {
"postalCode" : "{postal.code.value}"
}
}]]></Input>
<Output>spanner.userdata.retrieved</Output>
</ConnectorCallout>
এরপর নিম্নলিখিত AssignMessage পলিসিটি, spanner.userdata.retrieved ভেরিয়েবলে সংরক্ষিত এক্সটেনশনের প্রতিক্রিয়াটিকেই ক্লায়েন্টের কাছে ফেরত পাঠানো প্রতিক্রিয়া হিসেবে ব্যবহার করে।
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Query-Response-Data">
<DisplayName>Get Query Response Data</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{spanner.userdata.retrieved}</Payload>
</Set>
</AssignMessage>
এই উদাহরণে, প্রতিক্রিয়া ডেটা নিম্নলিখিতের মতো JSON ফরম্যাটে ফেরত দেওয়া হয়।
{
"rows": [
{
"username": "freewill444",
"email": "freewill@example.com"
}
]
}
ডেটা আপডেট করুন
এই উদাহরণে, <Input> এলিমেন্টটিতে username — যা টেবিলের প্রাইমারি কী — এবং email কলামের জন্য একটি নতুন ভ্যালু রয়েছে।
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Update-User-Data">
<DisplayName>Update User Data</DisplayName>
<Connector>spanner-users-products</Connector>
<Action>update</Action>
<Input><![CDATA[{
"tableName" : "user",
"rows": [{
"username":"Liz456",
"email":"lizzard@example.com"
}]
}]]></Input>
</ConnectorCallout>
কর্ম
ঢোকান
ডাটাবেসে নির্দিষ্ট সারিগুলো সন্নিবেশ করে।
সিনট্যাক্স
<Action>insert</Action>
<Input><![CDATA[{
"tableName" : "table-to-insert-into",
"rows" : "rows-to-insert"
}]]></Input>
উদাহরণ
নিচের উদাহরণে, এক্সটেনশনটির insert অ্যাকশন ইউজার টেবিলে একজন নতুন ইউজার যোগ করে। একটি সারি যোগ করা হয়।
<Action>insert</Action>
<Input><![CDATA[{
"tableName" : "user",
"rows" : [{
"username": "jonesy42",
"firstName": "Floyd",
"lastName": "Jones",
"address": "3695 Auctor Street",
"city": "Gresham",
"region": "OR",
"postalCode": "12693",
"email": "floydster@example.com"
}]
}]]></Input>
অনুরোধের পরামিতি
| প্যারামিটার | বর্ণনা | প্রকার | ডিফল্ট | প্রয়োজনীয় |
|---|---|---|---|---|
| টেবিলের নাম | ডাটাবেসের সেই টেবিল যেখানে সারিগুলো সন্নিবেশ করা হবে। | স্ট্রিং | কিছুই না। | হ্যাঁ। |
| সারি | সন্নিবেশ করার সারিগুলো একটি ' rows JSON অবজেক্টে অ্যারে হিসেবে প্রকাশ করা হয়। | অ্যারে | কিছুই না। | হ্যাঁ। |
প্রতিক্রিয়া
কিছুই না।
কোয়েরিএসকিউএল
নির্দিষ্ট প্যারামিটারসহ SQL স্টেটমেন্ট ব্যবহার করে ডাটাবেস কোয়েরি করে। SQL স্টেটমেন্টে @-এর আগে নাম দিয়ে প্যারামিটারগুলো দেওয়া হয়; প্যারামিটারের মান এই অ্যাকশনের ' params প্যারামিটারে নির্দিষ্ট করা থাকে।
ক্লাউড স্প্যানার কোয়েরি সিনট্যাক্স সম্পর্কে বিস্তারিত জানতে, কোয়েরি সিনট্যাক্স দেখুন।
সিনট্যাক্স
<Action>querySQL</Action>
<Input><![CDATA[{
"sql" : "sql-query-statement",
"params" : {
"param1" : "columnValue"
}
}]]></Input>
উদাহরণ
এই উদাহরণে, একটি কোয়েরি user টেবিল থেকে username এবং email কলামের মানগুলো পুনরুদ্ধার করে। SQL স্টেটমেন্টটিতে একটি postalCode প্যারামিটার নির্দিষ্ট করা আছে, যা postal.code.value ফ্লো ভ্যারিয়েবল থেকে সেট করা হয়।
<Action>querySQL</Action>
<Input><![CDATA[{
"sql" : "SELECT username, email FROM user WHERE postalCode = @postalCode",
"params" : {
"postalCode" : "{postal.code.value}"
}
}]]></Input>
অনুরোধের পরামিতি
| প্যারামিটার | বর্ণনা | প্রকার | ডিফল্ট | প্রয়োজনীয় |
|---|---|---|---|---|
| এসকিউএল | কার্যকর করার জন্য SQL কোয়েরি। আপনি প্যারামিটার নামের শুরুতে @ চিহ্ন ব্যবহার করে প্যারামিটার নির্দিষ্ট করতে পারেন। এই প্যারামিটার নামগুলো অবশ্যই এই অ্যাকশনের params প্যারামিটারের কী-গুলোর সাথে সঙ্গতিপূর্ণ হতে হবে। | স্ট্রিং | কিছুই না। | হ্যাঁ। |
| প্যারামিটার | একটি অবজেক্ট যার কী (key) এবং ভ্যালু (value) হলো SQL কোয়েরিতে ব্যবহৃত প্যারামিটারগুলোর নাম ও মান। আপনি এখানে একাধিক প্যারামিটার তালিকাভুক্ত করতে পারেন। | বস্তু | কিছুই না। | না। |
প্রতিক্রিয়া
একটি rows অবজেক্ট, যা কোয়েরি দ্বারা ফেরত আসা কলামের নাম-মান জোড়গুলোর একটি অ্যারে ধারণ করে। উদাহরণস্বরূপ:
{
"rows": [
{
"username": "freewill444",
"email": "freewill@example.com"
}
]
}
আপডেট
নির্দিষ্ট ডেটা দিয়ে ডাটাবেসের সারিগুলো আপডেট করে।
সিনট্যাক্স
<Input><![CDATA[{
"tableName" : "table-with-rows-to-update",
"rows" : "rows-to-update"
}]]></Input>
উদাহরণ
এই উদাহরণে, Liz456 username ব্যবহারকারীর ইমেল ঠিকানাটি একটি নতুন মান দিয়ে আপডেট করা হয়েছে। একটি সারি আপডেট করা হয়েছে।
<Action>update</Action>
<Input><![CDATA[{
"tableName" : "user",
"rows": [{
"username":"Liz456",
"email":"lizzard@example.com"
}]
}]]></Input>
অনুরোধের পরামিতি
| প্যারামিটার | বর্ণনা | প্রকার | ডিফল্ট | প্রয়োজনীয় |
|---|---|---|---|---|
| টেবিলের নাম | ডাটাবেসের সেই টেবিল যেখানে সারিগুলো আপডেট করা হবে। | স্ট্রিং | কিছুই না। | হ্যাঁ। |
| সারি | আপডেট করার জন্য সারি ডেটার একটি অ্যারে। অ্যারের প্রতিটি এনটিটিতে আপডেট করার জন্য সারিটির অনন্য আইডি (যেমন প্রাইমারি কী) মান থাকা উচিত। | অ্যারে | কিছুই না। | হ্যাঁ। |
প্রতিক্রিয়া
কিছুই না।
কনফিগারেশন রেফারেন্স
এপিআই প্রক্সিতে ব্যবহারের জন্য এই এক্সটেনশনটি কনফিগার এবং ডেপ্লয় করার সময় নিম্নলিখিত বিষয়গুলো ব্যবহার করুন। Apigee কনসোল ব্যবহার করে একটি এক্সটেনশন কনফিগার করার ধাপগুলোর জন্য, “একটি এক্সটেনশন যোগ করা এবং কনফিগার করা” দেখুন।
সাধারণ সম্প্রসারণ বৈশিষ্ট্য
নিম্নলিখিত বৈশিষ্ট্যগুলি প্রতিটি এক্সটেনশনের জন্য উপস্থিত রয়েছে।
| সম্পত্তি | বর্ণনা | ডিফল্ট | প্রয়োজন |
|---|---|---|---|
name | আপনি এক্সটেনশনের এই কনফিগারেশনের নাম দিন। | কোনোটিই নয় | হ্যাঁ |
packageName | Apigee Edge দ্বারা প্রদত্ত এক্সটেনশন প্যাকেজের নাম। | কোনোটিই নয় | হ্যাঁ |
version | যে এক্সটেনশন প্যাকেজ থেকে আপনি একটি এক্সটেনশন কনফিগার করছেন তার সংস্করণ নম্বর। | কোনোটিই নয় | হ্যাঁ |
configuration | আপনি যে এক্সটেনশনটি যোগ করছেন তার জন্য নির্দিষ্ট কনফিগারেশন মান। এই এক্সটেনশন প্যাকেজের বৈশিষ্ট্য দেখুন | কোনোটিই নয় | হ্যাঁ |
এই এক্সটেনশন প্যাকেজের জন্য বৈশিষ্ট্যসমূহ
এই এক্সটেনশনের জন্য নির্দিষ্ট নিম্নলিখিত কনফিগারেশন প্রোপার্টিগুলোর মান উল্লেখ করুন।
| সম্পত্তি | বর্ণনা | ডিফল্ট | প্রয়োজনীয় |
|---|---|---|---|
| প্রজেক্ট আইডি | ডাটাবেস ধারণকারী GCP প্রজেক্টের আইডি। | কিছুই না। | হ্যাঁ। |
| ইনস্ট্যান্সআইডি | আপনার GCP প্রোজেক্টে থাকা ক্লাউড স্প্যানার ইনস্ট্যান্সের আইডি। | কিছুই না। | হ্যাঁ। |
| ডেটাবেস আইডি | ক্লাউড স্প্যানার ডাটাবেসের আইডি। | কিছুই না। | হ্যাঁ। |
| পরিচয়পত্র | Apigee Edge কনসোলে প্রবেশ করানো হলে, এটি আপনার সার্ভিস অ্যাকাউন্ট কী ফাইলের বিষয়বস্তু। ম্যানেজমেন্ট API-এর মাধ্যমে পাঠানো হলে, এটি সার্ভিস অ্যাকাউন্ট কী ফাইল থেকে তৈরি একটি base64-এনকোডেড মান। | কিছুই না। | হ্যাঁ। |