1. ভূমিকা
শেষ আপডেট: ২০২১-০৫-১১
ক্লাউড এসকিউএল কী?
ক্লাউড এসকিউএল একটি সম্পূর্ণরূপে পরিচালিত ডাটাবেস পরিষেবা যা গুগল ক্লাউড প্ল্যাটফর্মে আপনার রিলেশনাল ডাটাবেস সেট আপ, রক্ষণাবেক্ষণ, পরিচালনা এবং পরিচালনা করা সহজ করে তোলে।
ক্লাউড ফাংশন কি?
ক্লাউড ফাংশনস হল একটি হালকা কম্পিউট সলিউশন যা ডেভেলপারদের জন্য একক-উদ্দেশ্য, স্বতন্ত্র ফাংশন তৈরি করতে সাহায্য করে যা ক্লাউড ইভেন্টগুলিতে সাড়া দেয় কোনও সার্ভার বা রানটাইম পরিবেশ পরিচালনা করার প্রয়োজন ছাড়াই।
তুমি কী তৈরি করবে
এই কোডল্যাবে, আপনি পাইথনে একটি ক্লাউড ফাংশন লিখবেন। ফাংশনটি:
- একটি ক্লাউড SQL ডাটাবেস ইনস্ট্যান্সের সাথে সংযোগ করে।
- ডাটাবেসের একটি টেবিলে একটি সন্নিবেশ বিবৃতি পাঠায়।
তুমি কি শিখবে
- গুগল ক্লাউড কনসোলে ক্লাউড ফাংশন ওয়েব UI কীভাবে অ্যাক্সেস করবেন।
- কিভাবে একটি ক্লাউড ফাংশন তৈরি করবেন।
- ক্লাউড ফাংশন কিভাবে পরীক্ষা করবেন।
- পাইথন ব্যবহার করে ক্লাউড SQL ডাটাবেস ইনস্ট্যান্সের (MySQL অথবা PostgreSQL) সাথে কীভাবে সংযোগ করবেন।
- পাইথন ব্যবহার করে ক্লাউড এসকিউএল ডাটাবেসে কীভাবে লিখবেন।
2. প্রয়োজনীয়তা
- একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স ।
- একটি Google Cloud Platform প্রকল্প যাতে আপনার Cloud SQL ইনস্ট্যান্স থাকে।
- যদি আপনার কাছে ইতিমধ্যেই একটি না থাকে, তাহলে আপনি MySQL বা PostgreSQL এর Quickstart ধাপগুলি অনুসরণ করতে পারেন। পরিষ্কার করা ছাড়া বাকি সকল ধাপগুলি করুন।
- আপনার ইনস্ট্যান্সে একটি টেবিল সহ একটি MySQL বা PostgreSQL ডাটাবেস রয়েছে।
- আপনার ইনস্ট্যান্স সংযোগের নাম, ডাটাবেস এবং টেবিলের নাম, ডাটাবেস ব্যবহারকারীর নাম এবং ব্যবহারকারীর পাসওয়ার্ড।
- ক্লাউড SQL ক্লায়েন্ট ভূমিকা সহ একটি পরিষেবা অ্যাকাউন্ট।
৩. কোডটি প্রস্তুত করুন এবং ফাংশনটি তৈরি করুন
কোডটি প্রস্তুত করুন
ক্লাউড SQL ডাটাবেসের সাথে সংযোগ স্থাপনের জন্য ক্লাউড ফাংশন কোডটি এখানেই রয়েছে। কিছু ভেরিয়েবল মান আপনার ক্লাউড SQL ডাটাবেস MySQL নাকি PostgreSQL তার উপর নির্ভর করে এবং আপনার নিজস্ব ডাটাবেস তথ্যের উপর নির্ভর করে।
ক্লাউড কনসোলের ক্লাউড ফাংশন UI-তে একটি টেক্সট এডিটর রয়েছে। আপনি সেখানে কোডটি কপি/পেস্ট এবং সম্পাদনা করতে পারেন, অথবা প্রথমে স্থানীয়ভাবে কোডটি সম্পাদনা করতে পারেন, এবং তারপর UI-তে কপি/পেস্ট করতে পারেন।
requirements.txt ফাইল
# This file tells Python which modules it needs to import
SQLAlchemy==1.3.12
# If your database is MySQL, uncomment the following line:
#PyMySQL==0.9.3
# If your database is PostgreSQL, uncomment the following line:
#pg8000==1.13.2
main.py সম্পর্কে
# This file contains all the code used in the codelab.
import sqlalchemy
# Depending on which database you are using, you'll set some variables differently.
# In this code we are inserting only one field with one value.
# Feel free to change the insert statement as needed for your own table's requirements.
# Uncomment and set the following variables depending on your specific instance and database:
#connection_name = ""
#table_name = ""
#table_field = ""
#table_field_value = ""
#db_name = ""
#db_user = ""
#db_password = ""
# If your database is MySQL, uncomment the following two lines:
#driver_name = 'mysql+pymysql'
#query_string = dict({"unix_socket": "/cloudsql/{}".format(connection_name)})
# If your database is PostgreSQL, uncomment the following two lines:
#driver_name = 'postgres+pg8000'
#query_string = dict({"unix_sock": "/cloudsql/{}/.s.PGSQL.5432".format(connection_name)})
# If the type of your table_field value is a string, surround it with double quotes.
def insert(request):
request_json = request.get_json()
stmt = sqlalchemy.text('insert into {} ({}) values ({})'.format(table_name, table_field, table_field_value))
db = sqlalchemy.create_engine(
sqlalchemy.engine.url.URL(
drivername=driver_name,
username=db_user,
password=db_password,
database=db_name,
query=query_string,
),
pool_size=5,
max_overflow=2,
pool_timeout=30,
pool_recycle=1800
)
try:
with db.connect() as conn:
conn.execute(stmt)
except Exception as e:
return 'Error: {}'.format(str(e))
return 'ok'
ফাংশনটি তৈরি করুন
- একটি ব্রাউজারে, Google Cloud Platform Console UI এ যান।
- নেভিগেশন মেনু থেকে ক্লাউড ফাংশন নির্বাচন করুন।
- বোতাম বারে CREATE FUNCTION এ ক্লিক করুন।
- ফাংশনের জন্য একটি নাম লিখুন।
- HTTP ট্রিগার নির্বাচন করুন। (ট্রিগার আইটেমের নীচে প্রদর্শিত URL টি নোট করুন। এটি এই ফর্ম্যাটে থাকবে: https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME )
- প্রমাণীকরণের অধীনে, ফাংশনটি সর্বজনীন করার জন্য অপ্রমাণিত আহ্বানগুলিকে অনুমতি দিন নির্বাচন করুন।
- রানটাইম, বিল্ড এবং সংযোগ সেটিংস প্রসারিত করুন রানটাইম পরিষেবা অ্যাকাউন্টে , এমন একটি পরিষেবা অ্যাকাউন্ট নির্বাচন করুন যার ক্লাউড SQL ক্লায়েন্ট ভূমিকা রয়েছে।
- পরবর্তী বোতামে ক্লিক করুন।
- রানটাইম বিকল্পের জন্য পাইথন ৩.৭ নির্বাচন করুন।
- সোর্স কোড বিকল্পের জন্য ইনলাইন এডিটর নির্বাচন করুন।
- সোর্স কোড এডিটর উইন্ডোতে, requirements.txt এবং main.py উভয়ের জন্য বিদ্যমান কন্টেন্ট মুছে ফেলুন এবং উপরের কোডের সম্পাদিত সংস্করণগুলি দিয়ে প্রতিস্থাপন করুন।
- এন্ট্রি পয়েন্টের নাম হিসেবে insert লিখুন ।
- Deploy এ ক্লিক করুন এবং ফাংশনটি তৈরি হওয়া পর্যন্ত অপেক্ষা করুন। স্পিনারটি ঘুরতে থামে এবং ফাংশনটি ব্যবহারের জন্য প্রস্তুত হলে পরবর্তী পৃষ্ঠায় একটি সবুজ টিক চিহ্ন প্রদর্শিত হয়।
৪. ফাংশনটি পরীক্ষা করুন
- একটি ব্রাউজারে, Google Cloud Platform Console UI এ যান।
- নেভিগেশন মেনু থেকে ক্লাউড ফাংশন নির্বাচন করুন।
- আপনার আগে তৈরি করা ফাংশনের নামের উপর ক্লিক করুন।
- পৃষ্ঠার মাঝখানে TESTING লিঙ্কটি নির্বাচন করুন।
- ফাংশন পরীক্ষা করুন নির্বাচন করুন।
- ফলাফলটি প্রদর্শিত হবে: ঠিক আছে (যদি পরীক্ষাটি ব্যর্থ হয়, তাহলে ডিবাগিংয়ে সাহায্য করার জন্য আপনি একটি স্ট্যাক ট্রেস দেখতে পাবেন।)
- ব্রাউজারে, ফাংশন তৈরি করার সময় আপনি যে URL টি আগে সংরক্ষণ করেছিলেন সেখানে যান। যদি আপনি URL টি সংরক্ষণ করতে ভুলে যান, তাহলে আপনি এটি TRIGGER লিঙ্ক থেকে পেতে পারেন।
- ঠিক আছে ফলাফলটি ব্রাউজারেও প্রদর্শিত হবে।
৫. পরিষ্কার করা
এই কোডল্যাবে ব্যবহৃত রিসোর্সের জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, এই পদক্ষেপগুলি অনুসরণ করুন।
ক্লাউড SQL ইনস্ট্যান্স মুছে ফেলুন
- গুগল ক্লাউড কনসোলের ক্লাউড এসকিউএল ইনস্ট্যান্স পৃষ্ঠায় যান।
- ইনস্ট্যান্সের বিবরণ পৃষ্ঠা খুলতে আপনার তৈরি করা ইনস্ট্যান্সটি নির্বাচন করুন।
- পৃষ্ঠার উপরের আইকন বারে, মুছুন ক্লিক করুন।
- ডিলিট ইনস্ট্যান্স উইন্ডোতে, আপনার ইনস্ট্যান্সের নাম টাইপ করুন, তারপর ইনস্ট্যান্সটি মুছে ফেলতে ডিলিট ক্লিক করুন। একটি ইনস্ট্যান্স মুছে ফেলার পর আপনি প্রায় ৭ দিন ধরে একটি ইনস্ট্যান্সের নাম পুনরায় ব্যবহার করতে পারবেন না।
ক্লাউড ফাংশনটি মুছুন
- গুগল ক্লাউড কনসোলের ক্লাউড ফাংশন পৃষ্ঠায় যান।
- আপনার ফাংশনের জন্য Actions এর অধীনে তিনটি বিন্দু নির্বাচন করুন এবং Delete নির্বাচন করুন।
- DELETE বোতামে ক্লিক করে মুছে ফেলা নিশ্চিত করুন।
৬. অভিনন্দন
অভিনন্দন, আপনি সফলভাবে একটি ক্লাউড ফাংশন তৈরি করেছেন যা ক্লাউড SQL এর সাথে কাজ করে।
বিশেষ করে, আপনি একটি ক্লাউড ফাংশন তৈরি করেছেন যা একটি ক্লাউড SQL ডাটাবেস ইনস্ট্যান্সের সাথে সংযোগ স্থাপন করে এবং লিখে।
৭. এরপর কী?
এই কোডল্যাবগুলির কিছু দেখুন...
- ক্লাউড এসকিউএল-এর সাথে সংযোগ স্থাপন: কম্পিউট ইঞ্জিন, প্রাইভেট আইপি এবং ক্লাউড এসকিউএল প্রক্সি
- ক্লাউড এসকিউএল অন্তর্দৃষ্টির ভূমিকা