আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন। তথ্য
ভার্সন 2.0.1
Cloud Spanner ডেটাবেসে ডেটা যোগ করা, কোয়েরি করা ও আপডেট করার মতো অপারেশন পারফর্ম করা।
এই এক্সটেনশন কনফিগার ও ব্যবহার করার জন্য এই কন্টেন্ট রেফারেন্স প্রদান করে। ExtensionCallout নীতি ব্যবহার করে API প্রক্সি থেকে এক্সটেনশন ব্যবহার করার আগে, আপনাকে অবশ্যই:
ইনস্ট্যান্স তৈরি ও ম্যানেজ করা নিবন্ধে বর্ণিত পদ্ধতিতে Cloud Spanner ইনস্ট্যান্স তৈরি করুন এবং একটি ডেটাবেস তৈরি করুন।
ইনস্ট্যান্স ও ডেটাবেস তৈরি হয়ে গেলে, আপনার এক্সটেনশনকে প্রতিনিধিত্বকারী Google Cloud পরিষেবা অ্যাকাউন্টের জন্য ডেটাবেস অ্যাক্সেস করার অনুমতি দিন। ব্যবহার করার জন্য ভূমিকা সম্পর্কে আরও জানতে, Cloud Spanner ভূমিকা দেখুন। Cloud Spanner অ্যাক্সেস কন্ট্রোল সম্পর্কে আরও জানতে, IAM ভূমিকা প্রয়োগ করা এবং Cloud Spanner-এর জন্য অ্যাক্সেস কন্ট্রোল দেখুন।
আপনার কাছে এমন একটি পরিষেবা অ্যাকাউন্ট থাকলে, যেটির আপনার ডেটাবেসে অ্যাক্সেস লেভেলের জন্য অনুমতি আছে, তাহলে পরিষেবা অ্যাকাউন্টের জন্য একটি কী তৈরি করতে Google Cloud Console ব্যবহার করুন। এই এক্সটেনশন কনফিগার করার সময়, ফলাফল হিসেবে পাওয়া কী JSON ফাইলের কন্টেন্ট ব্যবহার করুন।
কনফিগারেশন রেফারেন্স ব্যবহার করে এক্সটেনশন যোগ ও কনফিগার করার সময়, ফলাফল হিসেবে প্রাপ্ত কী JSON ফাইলের কন্টেন্ট ব্যবহার করুন।
Cloud Spanner সম্পর্কে
Cloud Spanner হল একটি রিলেশনাল ডেটাবেস পরিষেবা যা রিলেশনাল, স্ট্রাকচার্ড এবং সেমি-স্ট্রাকচার্ড ডেটার জন্য উপযোগী। এর জন্য হাই অ্যাভেবেলিটি, শক্তিশালী কনসিস্টেন্সি এবং ট্রানজ্যাকশনাল রিড ও রাইট প্রয়োজন।
আপনি Cloud Spanner-এর ব্যবহার সবেমাত্র শুরু করে থাকলে, Cloud Spanner ডকুমেন্টেশনে দেওয়া কুইকস্টার্ট থেকে শুরু করতে পারেন।
নমুনা
ExtensionCallout নীতি ব্যবহার করে Cloud Spanner এক্সটেনশন অ্যাকশনের জন্য কীভাবে সহায়তা কনফিগার করতে হয় তা নিম্নলিখিত উদাহরণ থেকে বোঝা যায়।
ডেটা যোগ করুন
নিচের উদাহরণে, এক্সটেনশনের 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 অবজেক্টে অ্যারে হিসেবে যোগ করার জন্য সারিগুলি উল্লেখ করা হয়েছে। |
অ্যারে | কোনওটিই নয়। | হ্যাঁ। |
রেসপন্স
কোনওটিই নয়।
querySQL
নির্দিষ্ট প্যারামিটার সহ SQL স্টেটমেন্ট ব্যবহার করে ডেটাবেস কোয়েরি করে। SQL স্টেটমেন্টে @-প্রিপেন্ডেড নাম সহ প্যারামিটার দেওয়া হয়; এই অ্যাকশনের params প্যারামিটারে প্যারামিটারের ভ্যালু নির্দিষ্ট করা হয়।
Cloud Spanner কোয়েরি সিনট্যাক্স সম্পর্কে আরও জানতে, কোয়েরি সিনট্যাক্স দেখুন।
সিন্ট্যাক্স
<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 | এক্সিকিউট করার জন্য SQL কোয়েরি। আপনি @-প্রিপেন্ডেড প্যারামিটারের নাম সহ প্যারামিটার নির্দিষ্ট করতে পারেন। সেইসব প্যারামিটারের নাম অবশ্যই এই অ্যাকশনের params প্যারামিটারের কী-এর সাথে মিলতে হবে। |
স্ট্রিং | কোনওটিই নয়। | হ্যাঁ। |
| params | এমন একটি অবজেক্ট যার কী ও ভ্যালু হল SQL কোয়েরিতে ব্যবহৃত প্যারামিটারের নাম ও ভ্যালু। আপনি এখানে একাধিক প্যারামিটার তালিকাভুক্ত করতে পারবেন। | অবজেক্ট | কোনওটিই নয়। | না। |
রেসপন্স
কোয়েরি থেকে প্রাপ্ত কলামের নাম-মান জোড়ের অ্যারে সহ rows অবজেক্ট। যেমন:
{
"rows": [
{
"username": "freewill444",
"email": "freewill@example.com"
}
]
}
আপডেট করুন
নির্দিষ্ট ডেটা সহ ডেটাবেসে সারি আপডেট করে।
সিন্ট্যাক্স
<Input><![CDATA[{
"tableName" : "table-with-rows-to-update",
"rows" : "rows-to-update"
}]]></Input>
উদাহরণ
এই উদাহরণে, যে ব্যবহারকারীর username হল Liz456 তার ইমেল আইডিতে নতুন ভ্যালু আপডেট করা হয়েছে। একটি সারি আপডেট করা হয়েছে।
<Action>update</Action>
<Input><![CDATA[{
"tableName" : "user",
"rows": [{
"username":"Liz456",
"email":"lizzard@example.com"
}]
}]]></Input>
অনুরোধের প্যারামিটার
| প্যারামিটার | বিবরণ | ধরন | ডিফল্ট | প্রয়োজনীয় |
|---|---|---|---|---|
| সারণীর নাম | ডেটাবেসের সেই টেবিল যেখানে সারি আপডেট করতে হবে। | স্ট্রিং | কোনওটিই নয়। | হ্যাঁ। |
| সারি | আপডেট করার জন্য সারির ডেটার একটি অ্যারে। আপডেট করার জন্য অ্যারের প্রতিটি এন্টিটিতে সারির অনন্য আইডি (যেমন, প্রাইমারি কী) ভ্যালু থাকতে হবে। | অ্যারে | কোনওটিই নয়। | হ্যাঁ। |
রেসপন্স
কোনওটিই নয়।
কনফিগারেশন রেফারেন্স
API প্রক্সিতে ব্যবহারের জন্য এই এক্সটেনশন কনফিগার ও ডেপ্লয় করার সময় নিম্নলিখিত বিষয়গুলি ব্যবহার করুন। Apigee কনসোল ব্যবহার করে এক্সটেনশন কনফিগার করার ধাপগুলি জানতে, এক্সটেনশন যোগ করা ও কনফিগার করা দেখুন।
এক্সটেনশনের সাধারণ প্রপার্টি
নিম্নলিখিত বৈশিষ্ট্যগুলি প্রতিটি এক্সটেনশনের জন্য উপস্থিত রয়েছে।
| সম্পত্তি | বর্ণনা | ডিফল্ট | প্রয়োজন |
|---|---|---|---|
name | আপনি এক্সটেনশনের এই কনফিগারেশনের নাম দিন। | কোনোটিই নয় | হ্যাঁ |
packageName | Apigee Edge দ্বারা প্রদত্ত এক্সটেনশন প্যাকেজের নাম। | কোনোটিই নয় | হ্যাঁ |
version | যে এক্সটেনশন প্যাকেজ থেকে আপনি একটি এক্সটেনশন কনফিগার করছেন তার সংস্করণ নম্বর। | কোনোটিই নয় | হ্যাঁ |
configuration | আপনি যে এক্সটেনশনটি যোগ করছেন তার জন্য নির্দিষ্ট কনফিগারেশন মান। এই এক্সটেনশন প্যাকেজের বৈশিষ্ট্য দেখুন | কোনোটিই নয় | হ্যাঁ |
এই এক্সটেনশন প্যাকেজের প্রপার্টি
এই এক্সটেনশনের জন্য নির্দিষ্ট নিম্নলিখিত কনফিগারেশন প্রপার্টির ভ্যালু উল্লেখ করুন।
| প্রপার্টি | বিবরণ | ডিফল্ট | প্রয়োজনীয় |
|---|---|---|---|
| projectId | ডেটাবেস থাকা Google Cloud প্রোজেক্টের আইডি। | কোনওটিই নয়। | হ্যাঁ। |
| instanceId | আপনার Google Cloud প্রোজেক্টে Cloud Spanner ইনস্ট্যান্সের আইডি। | কোনওটিই নয়। | হ্যাঁ। |
| databaseId | Cloud Spanner ডেটাবেসের আইডি। | কোনওটিই নয়। | হ্যাঁ। |
| ক্রেডেনশিয়াল | Apigee Edge কনসোলে এটি প্রবেশ করানো হলে, এটি আপনার পরিষেবা অ্যাকাউন্ট কী ফাইলের কন্টেন্ট। ম্যানেজমেন্ট API ব্যবহার করে পাঠানো হলে, এটি হল পরিষেবা অ্যাকাউন্ট কী ফাইল থেকে তৈরি করা একটি base64-এনকোড করা ভ্যালু। | কোনওটিই নয়। | হ্যাঁ। |