ক্লাউড ফাংশন সহ ক্লাউড এসকিউএল-এর সাথে সংযোগ করা হচ্ছে

1. ভূমিকা

শেষ আপডেট: 2021-05-11

Cloud SQL কি?

ক্লাউড এসকিউএল হল একটি সম্পূর্ণ-পরিচালিত ডাটাবেস পরিষেবা যা Google ক্লাউড প্ল্যাটফর্মে আপনার রিলেশনাল ডেটাবেস সেট আপ, রক্ষণাবেক্ষণ, পরিচালনা এবং পরিচালনা করা সহজ করে তোলে।

ক্লাউড ফাংশন কি?

ক্লাউড ফাংশন হল ডেভেলপারদের জন্য একক-উদ্দেশ্য, স্বতন্ত্র ফাংশন তৈরি করার জন্য একটি হালকা কম্পিউট সমাধান যা সার্ভার বা রানটাইম পরিবেশ পরিচালনার প্রয়োজন ছাড়াই ক্লাউড ইভেন্টগুলিতে সাড়া দেয়।

আপনি কি নির্মাণ করবেন

এই কোডল্যাবে, আপনি পাইথনে একটি ক্লাউড ফাংশন লিখবেন। ফাংশন:

  • একটি ক্লাউড SQL ডাটাবেস উদাহরণের সাথে সংযোগ করে।
  • ডাটাবেসের একটি টেবিলে একটি সন্নিবেশ বিবৃতি পাঠায়।

আপনি কি শিখবেন

  • গুগল ক্লাউড কনসোলে কীভাবে ক্লাউড ফাংশন ওয়েব UI অ্যাক্সেস করবেন।
  • কিভাবে একটি ক্লাউড ফাংশন তৈরি করতে হয়।
  • একটি ক্লাউড ফাংশন পরীক্ষা কিভাবে.
  • পাইথন ব্যবহার করে একটি ক্লাউড এসকিউএল ডাটাবেস ইনস্ট্যান্স (হয় MySQL বা PostgreSQL) এর সাথে কীভাবে সংযোগ করবেন।
  • পাইথন ব্যবহার করে একটি ক্লাউড এসকিউএল ডাটাবেসে কীভাবে লিখবেন।

2. প্রয়োজনীয়তা

  • একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
  • একটি Google ক্লাউড প্ল্যাটফর্ম প্রকল্প যাতে আপনার ক্লাউড SQL দৃষ্টান্ত রয়েছে।
  • আপনার যদি ইতিমধ্যে একটি না থাকে, তাহলে আপনি MySQL বা PostgreSQL- এর জন্য Quickstart-এর ধাপগুলি অনুসরণ করতে পারেন। পরিচ্ছন্নতা ব্যতীত সমস্ত পদক্ষেপগুলি করুন।
  • আপনার উদাহরণে একটি টেবিল সহ একটি MySQL বা PostgreSQL ডাটাবেস রয়েছে।
  • আপনার উদাহরণ সংযোগের নাম, ডাটাবেস এবং টেবিলের নাম, ডাটাবেসের ব্যবহারকারীর নাম এবং ব্যবহারকারীর পাসওয়ার্ড।
  • ক্লাউড SQL ক্লায়েন্ট ভূমিকা সহ একটি পরিষেবা অ্যাকাউন্ট।

3. কোড প্রস্তুত করুন এবং ফাংশন তৈরি করুন

কোড প্রস্তুত করুন

একটি ক্লাউড 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'

ফাংশন তৈরি করুন

  1. একটি ব্রাউজারে, Google ক্লাউড প্ল্যাটফর্ম কনসোল UI এ যান।
  2. নেভিগেশন মেনু থেকে ক্লাউড ফাংশন নির্বাচন করুন।
  3. বোতাম বারে ফাংশন তৈরি করুন ক্লিক করুন।
  4. ফাংশনের জন্য একটি নাম লিখুন।
  5. HTTP ট্রিগার নির্বাচন করুন। (ট্রিগার আইটেমের নীচে প্রদর্শিত URLটির একটি নোট করুন। এটি এই বিন্যাসে হবে: https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME )
  6. প্রমাণীকরণের অধীনে, ফাংশনটিকে সর্বজনীন করতে অপ্রমাণিত আহ্বানের অনুমতি দিন নির্বাচন করুন।
  7. রানটাইম, বিল্ড এবং সংযোগ সেটিংস প্রসারিত করুন রানটাইম পরিষেবা অ্যাকাউন্টে , ক্লাউড SQL ক্লায়েন্ট ভূমিকা আছে এমন একটি পরিষেবা অ্যাকাউন্ট নির্বাচন করুন৷
  8. NEXT বাটনে ক্লিক করুন।
  9. রানটাইম বিকল্পের জন্য পাইথন 3.7 নির্বাচন করুন।
  10. সোর্স কোড বিকল্পের জন্য ইনলাইন সম্পাদক নির্বাচন করুন।
  11. সোর্স কোড এডিটর উইন্ডোতে সেল ইন করুন, requirements.txt এবং main.py উভয়ের জন্য বিদ্যমান বিষয়বস্তু মুছুন এবং উপরের কোডের আপনার সম্পাদিত সংস্করণ দিয়ে তাদের প্রতিস্থাপন করুন।
  12. এন্ট্রি পয়েন্টের নাম হিসাবে সন্নিবেশ লিখুন
  13. Deploy-এ ক্লিক করুন এবং ফাংশন তৈরি হওয়ার সময় অপেক্ষা করুন। স্পিনারটি স্পিনিং বন্ধ করে দেয় এবং ফাংশনটি ব্যবহারের জন্য প্রস্তুত হলে পরবর্তী পৃষ্ঠায় একটি সবুজ চেক প্রদর্শিত হয়।

4. ফাংশন পরীক্ষা করুন

  1. একটি ব্রাউজারে, Google ক্লাউড প্ল্যাটফর্ম কনসোল UI এ যান।
  2. নেভিগেশন মেনু থেকে ক্লাউড ফাংশন নির্বাচন করুন।
  3. আপনি আগে যে ফাংশনটি তৈরি করেছেন তার নামের উপর ক্লিক করুন।
  4. পৃষ্ঠার মাঝখানে TESTING লিঙ্কটি নির্বাচন করুন।
  5. ফাংশন পরীক্ষা করুন নির্বাচন করুন।
  6. ফলাফলটি উপস্থিত হওয়া উচিত: ঠিক আছে (যদি পরীক্ষা ব্যর্থ হয়, আপনি ডিবাগিংয়ে সহায়তা করার জন্য একটি স্ট্যাক ট্রেস দেখতে পাবেন।)
  7. একটি ব্রাউজারে, আপনি ফাংশন তৈরি করার সময় আগে যে ইউআরএলটি সংরক্ষণ করেছিলেন সেখানে যান। আপনি URL সংরক্ষণ করতে ভুলে গেলে, আপনি এটি TRIGGER লিঙ্ক থেকে পেতে পারেন৷
  8. ঠিক আছে ফলাফল ব্রাউজারে প্রদর্শিত হবে.

5. পরিষ্কার করুন

এই কোডল্যাবে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, এই পদক্ষেপগুলি অনুসরণ করুন৷

ক্লাউড এসকিউএল ইন্সট্যান্স মুছুন

  1. Google ক্লাউড কনসোলে ক্লাউড এসকিউএল ইনস্ট্যান্স পৃষ্ঠাতে যান।
  2. ইনস্ট্যান্স বিশদ পৃষ্ঠা খুলতে আপনি যে উদাহরণটি তৈরি করেছেন তা নির্বাচন করুন।
  3. পৃষ্ঠার শীর্ষে আইকন বারে, মুছুন ক্লিক করুন।
  4. ডিলিট ইনস্ট্যান্স উইন্ডোতে, আপনার ইন্সট্যান্সের নাম টাইপ করুন, তারপর ইনস্ট্যান্স মুছে ফেলতে মুছুন ক্লিক করুন। একটি উদাহরণ মুছে ফেলার পরে আপনি প্রায় 7 দিনের জন্য একটি উদাহরণের নাম পুনরায় ব্যবহার করতে পারবেন না।

ক্লাউড ফাংশন মুছুন

  1. Google ক্লাউড কনসোলে ক্লাউড ফাংশন পৃষ্ঠাতে যান।
  2. আপনার ফাংশনের জন্য অ্যাকশনের অধীনে তিনটি বিন্দু নির্বাচন করুন এবং মুছুন নির্বাচন করুন।
  3. DELETE বোতামে ক্লিক করে মুছে ফেলা নিশ্চিত করুন।

6. অভিনন্দন

অভিনন্দন, আপনি সফলভাবে একটি ক্লাউড ফাংশন তৈরি করেছেন যা ক্লাউড SQL এর সাথে কাজ করে।

বিশেষ করে, আপনি একটি ক্লাউড ফাংশন তৈরি করেছেন যা একটি ক্লাউড এসকিউএল ডাটাবেস ইনস্ট্যান্সে সংযোগ করে এবং লেখে।

7. পরবর্তী কি?

এই কোডল্যাবগুলির কিছু পরীক্ষা করে দেখুন...

আরও পড়া

রেফারেন্স ডক্স