ওয়াকথ্রুস

ওয়াকথ্রুগুলির এই সিরিজটি একটি কর্মরত ক্লাসরুম অ্যাড-অনের সমস্ত চলমান অংশগুলিকে চিত্রিত করে। প্রতিটি ওয়াকথ্রু পদক্ষেপ নির্দিষ্ট ধারণাগুলিকে সম্বোধন করে, সেগুলিকে একটি একক ওয়েব অ্যাপ্লিকেশনে প্রয়োগ করে৷ লক্ষ্য হল আপনাকে একটি কার্যকরী অ্যাড-অন সেট আপ, কনফিগার এবং চালু করতে সহায়তা করা।

আপনার অ্যাড-অনকে অবশ্যই একটি Google ক্লাউড প্রকল্পের সাথে ইন্টারঅ্যাক্ট করতে হবে। আপনি যদি Google ক্লাউডের সাথে অপরিচিত হন তবে আমরা শুরু করার নির্দেশিকাগুলি পড়ার পরামর্শ দিই। আপনি Google ক্লাউড কনসোলে শংসাপত্র, API অ্যাক্সেস এবং GWM SDK পরিচালনা করেন। GWM SDK সম্পর্কে আরও তথ্যের জন্য, Google Workspace Marketplace তালিকা নির্দেশিকা পৃষ্ঠাতে যান।

এই নির্দেশিকা নিম্নলিখিত বিষয়গুলি কভার করে:

  • ক্লাসরুমে একটি আইফ্রেমে দেখানোর জন্য একটি পৃষ্ঠা তৈরি করতে Google ক্লাউড ব্যবহার করুন।
  • Google একক সাইন-অন (SSO) যোগ করুন এবং ব্যবহারকারীদের সাইন ইন করার অনুমতি দিন।
  • একটি অ্যাসাইনমেন্টে আপনার অ্যাড-অন সংযুক্ত করতে API কল করুন।
  • কী অ্যাড-অন জমা দেওয়ার প্রয়োজনীয়তা এবং প্রয়োজনীয় বৈশিষ্ট্যগুলি সম্বোধন করুন।

এই গাইডটি অনুমান করে যে আপনি প্রোগ্রামিং এবং মৌলিক ওয়েব বিকাশের ধারণাগুলির সাথে পরিচিত৷ ওয়াকথ্রু শুরু করার আগে আমরা দৃঢ়ভাবে প্রজেক্ট কনফিগারেশন গাইড পড়ার পরামর্শ দিই। এই পৃষ্ঠায় গুরুত্বপূর্ণ কনফিগারেশন বিশদ রয়েছে যা সম্পূর্ণরূপে ওয়াকথ্রুতে আচ্ছাদিত নয়।

উদাহরণ বাস্তবায়ন

সম্পূর্ণ রেফারেন্স উদাহরণ JavaScript , Python , এবং Java এ উপলব্ধ। এই বাস্তবায়নগুলি পরবর্তী পৃষ্ঠাগুলিতে পাওয়া উদাহরণ কোডের উত্স।

কোথায় ডাউনলোড করতে হবে

আমাদের উদাহরণগুলির সম্পূর্ণ সংরক্ষণাগারগুলি নীচের লিঙ্কগুলি ব্যবহার করে ডাউনলোড করা যেতে পারে।

পূর্বশর্ত

একটি নতুন অ্যাড-অন প্রকল্প প্রস্তুত করতে নিম্নলিখিত বিভাগগুলি পর্যালোচনা করুন৷

HTTPS শংসাপত্র

আপনি যেকোন ডেভেলপমেন্ট এনভায়রনমেন্টে আপনার অ্যাপ হোস্ট করতে পারলেও আপনার ক্লাসরুম অ্যাড-অন শুধুমাত্র https:// এর মাধ্যমে উপলব্ধ। অতএব, আপনার অ্যাপ স্থাপন করতে বা অ্যাড-অন আইফ্রেমের মধ্যে এটি পরীক্ষা করতে আপনার SSL এনক্রিপশন সহ একটি সার্ভারের প্রয়োজন৷

একটি SSL সার্টিফিকেট সহ localhost ব্যবহার করা সম্ভব; স্থানীয় উন্নয়নের জন্য একটি শংসাপত্র তৈরি করতে হলে mkcert বিবেচনা করুন।

গুগল ক্লাউড প্রকল্প

এই উদাহরণগুলির সাথে ব্যবহারের জন্য আপনাকে একটি Google ক্লাউড প্রকল্প কনফিগার করতে হবে৷ শুরু করার জন্য প্রয়োজনীয় পদক্ষেপগুলির একটি ওভারভিউয়ের জন্য Google ক্লাউড প্রকল্প তৈরির নির্দেশিকা দেখুন। প্রথম ওয়াকথ্রুতে একটি Google ক্লাউড প্রজেক্ট সেট আপ করুন নির্দিষ্ট কনফিগারেশন অ্যাকশনগুলির মাধ্যমেও পদক্ষেপ নেয়।

শেষ হলে, JSON ফাইল হিসেবে আপনার OAuth 2.0 ক্লায়েন্ট আইডি ডাউনলোড করুন; আপনাকে এই শংসাপত্র ফাইলটি আনজিপ করা উদাহরণ ডিরেক্টরিতে যুক্ত করতে হবে। নির্দিষ্ট অবস্থানের জন্য ফাইল বুঝতে দেখুন.

OAuth শংসাপত্র

নতুন OAuth শংসাপত্র তৈরি করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  • Google ক্লাউড শংসাপত্র পৃষ্ঠাতে নেভিগেট করুন৷ নিশ্চিত করুন যে আপনি পর্দার শীর্ষে সঠিক প্রকল্প নির্বাচন করেছেন।
  • ক্রিয়েট ক্রেডেনশিয়াল ক্লিক করুন এবং ড্রপ-ডাউন থেকে OAuth ক্লায়েন্ট আইডি বেছে নিন।
  • পরবর্তী পৃষ্ঠায়:
    • অ্যাপ্লিকেশনের ধরনটি ওয়েব অ্যাপ্লিকেশনে সেট করুন।
    • অনুমোদিত রিডাইরেক্ট ইউআরআই- এর অধীনে, ইউআরআই যোগ করুন-এ ক্লিক করুন। আপনার অ্যাপ্লিকেশনের জন্য একটি কলব্যাক রুটের জন্য সম্পূর্ণ পথ যোগ করুন। উদাহরণস্বরূপ, https://my.domain.com/auth-callback বা https://localhost:5000/callback । আপনি এই ওয়াকথ্রুতে পরে এই রুটটি তৈরি এবং পরিচালনা করবেন। আপনি যেকোন সময় এই ধরনের আরও রুট সম্পাদনা করতে বা যোগ করতে পারেন।
    • CREATE এ ক্লিক করুন।
  • তারপরে আপনি আপনার নতুন তৈরি শংসাপত্রগুলির সাথে একটি ডায়ালগ পাবেন। JSON বিকল্পটি ডাউনলোড করুন। ডাউনলোড করা .json ফাইলটি আপনার সার্ভার ডিরেক্টরিতে কপি করুন।

ভাষা-নির্দিষ্ট পূর্বশর্ত

পূর্বশর্তগুলির সর্বাধিক আপ-টু-ডেট তালিকার জন্য প্রতিটি সংরক্ষণাগারে README ফাইলটি দেখুন।

পাইথন

আমাদের পাইথন উদাহরণ ফ্লাস্ক ফ্রেমওয়ার্ক ব্যবহার করে। আপনি উপরের লিঙ্ক থেকে সম্পূর্ণ উৎস কোড ডাউনলোড করতে পারেন.

যদি প্রয়োজন হয়, পাইথন 3.7+ ইনস্টল করুন এবং নিশ্চিত করুন যে pip উপলব্ধ।

python3 -m ensurepip --upgrade

আমরা আপনাকে একটি নতুন পাইথন ভার্চুয়াল পরিবেশ সেট আপ এবং সক্রিয় করার পরামর্শ দিই।

python3 -m venv .classroom-addon-env
source .classroom-addon-env/bin/activate

ডাউনলোড করা উদাহরণে প্রতিটি ওয়াকথ্রু সাবডিরেক্টরিতে একটি requirements.txt আছে। আপনি দ্রুত pip ব্যবহার করে প্রয়োজনীয় লাইব্রেরি ইনস্টল করতে পারেন। প্রথম ওয়াকথ্রু-এর জন্য প্রয়োজনীয় লাইব্রেরি ইনস্টল করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন।

cd flask/01-basic-app
pip install -r requirements.txt

Node.js

আমাদের Node.js উদাহরণ এক্সপ্রেস ফ্রেমওয়ার্ক ব্যবহার করে। আপনি উপরের লিঙ্ক থেকে সম্পূর্ণ উৎস কোড ডাউনলোড করতে পারেন.

এই উদাহরণের জন্য Node.js v16.13 বা তার পরবর্তী প্রয়োজন।

npm ব্যবহার করে প্রয়োজনীয় নোড মডিউল ইনস্টল করুন।

npm install

জাভা

আমাদের জাভা উদাহরণ স্প্রিং বুট ফ্রেমওয়ার্ক ব্যবহার করে। আপনি উপরের লিঙ্ক থেকে সম্পূর্ণ উৎস কোড ডাউনলোড করতে পারেন.

Java 11+ ইনস্টল করুন যদি আপনার মেশিনে এটি ইতিমধ্যেই ইনস্টল না থাকে।

স্প্রিং বুট অ্যাপ্লিকেশনগুলি বিল্ডগুলি পরিচালনা করতে এবং নির্ভরতা পরিচালনা করতে গ্রেডল বা ম্যাভেন ব্যবহার করতে পারে। এই উদাহরণে Maven র‍্যাপার অন্তর্ভুক্ত যা আপনাকে Maven ইনস্টল করার প্রয়োজন ছাড়াই একটি সফল বিল্ড নিশ্চিত করে।

যে ডিরেক্টরিতে আপনার প্রজেক্টটি ডাউনলোড বা ক্লোন করা আছে, সেখানে প্রজেক্ট চালানোর পূর্বশর্ত রয়েছে তা নিশ্চিত করতে নিম্নলিখিত কমান্ডগুলি চালান।

java --version
./mvnw --version

অথবা উইন্ডোজে:

java -version
mvnw.cmd --version

ফাইলগুলো বুঝে নিন

নিম্নলিখিত বিভাগগুলি উদাহরণ ডিরেক্টরিগুলির বিন্যাস বর্ণনা করে৷

ডিরেক্টরির নাম

প্রতিটি সংরক্ষণাগারে বেশ কয়েকটি ডিরেক্টরি রয়েছে যার নামগুলি একটি সংখ্যা দিয়ে শুরু হয়, যেমন /01-basic-app/ । সংখ্যাগুলি নির্দিষ্ট ওয়াকথ্রু পদক্ষেপের সাথে মিলে যায়। প্রতিটি ডিরেক্টরিতে একটি সম্পূর্ণ কার্যকরী ওয়েব অ্যাপ রয়েছে যা একটি নির্দিষ্ট ওয়াকথ্রুতে বর্ণিত বৈশিষ্ট্যগুলিকে প্রয়োগ করে৷ উদাহরণস্বরূপ, /01-basic-app/ ডিরেক্টরিতে একটি অ্যাড-অন ওয়াকথ্রু তৈরি করার চূড়ান্ত বাস্তবায়ন রয়েছে।

ডিরেক্টরি বিষয়বস্তু

বাস্তবায়নের ভাষার উপর নির্ভর করে ডিরেক্টরির বিষয়বস্তু ভিন্ন হয়:

পাইথন

  • ডিরেক্টরি রুটে নিম্নলিখিত ফাইলগুলি রয়েছে:

    • main.py - পাইথন অ্যাপ্লিকেশন এন্ট্রি পয়েন্ট। আপনি এই ফাইলটিতে যে সার্ভার কনফিগারেশন ব্যবহার করতে চান তা নির্দিষ্ট করুন, তারপর সার্ভার শুরু করতে এটি চালান।
    • requirements.txt - ওয়েব অ্যাপ চালানোর জন্য প্রয়োজনীয় পাইথন মডিউল। pip install -r requirements.txt ব্যবহার করে এগুলি স্বয়ংক্রিয়ভাবে ইনস্টল করা যেতে পারে।
    • client_secret.json - Google ক্লাউড থেকে ডাউনলোড করা ক্লায়েন্ট গোপন ফাইল। মনে রাখবেন যে এটি উদাহরণ সংরক্ষণাগারে অন্তর্ভুক্ত নয়; প্রতিটি ডিরেক্টরি রুটে আপনার ডাউনলোড করা শংসাপত্র ফাইলের নাম পরিবর্তন এবং অনুলিপি করা উচিত।

  • config.py - ফ্লাস্ক সার্ভারের জন্য কনফিগারেশন বিকল্প।

  • webapp ডিরেক্টরিতে ওয়েব অ্যাপ্লিকেশনের বিষয়বস্তু রয়েছে। এটি নিম্নলিখিত অন্তর্ভুক্ত:

  • বিভিন্ন পৃষ্ঠার জন্য জিনজা টেমপ্লেট সহ /templates/ ডিরেক্টরি।

  • ছবি, CSS, এবং আনুষঙ্গিক জাভাস্ক্রিপ্ট ফাইল সহ /static/ ডিরেক্টরি।

  • routes.py - ওয়েব অ্যাপ্লিকেশন রুটের জন্য হ্যান্ডলার পদ্ধতি।

  • __init__.py - webapp মডিউলের জন্য সূচনাকারী। এই ইনিশিয়ালাইজারটি ফ্লাস্ক সার্ভার শুরু করে এবং config.py এ সেট করা কনফিগারেশন বিকল্পগুলি লোড করে।

  • একটি নির্দিষ্ট ওয়াকথ্রু ধাপে প্রয়োজনীয় অতিরিক্ত ফাইল।

Node.js

ওয়াকথথের প্রতিটি ধাপ তার নিজস্ব <step> সাব-ফোল্ডারে পাওয়া যাবে। প্রতিটি ধাপে রয়েছে:

  • স্ট্যাটিক ফাইল যেমন JavaScript, CSS এবং ছবি ./<step>/public ফোল্ডারে পাওয়া যায়।
  • এক্সপ্রেস রাউটারগুলি ./<step>/routes ফোল্ডারে পাওয়া যায়।
  • HTML টেমপ্লেট ./<step>/views ফোল্ডারে পাওয়া যায়।
  • সার্ভার অ্যাপ্লিকেশন হল ./<step>/app.js

জাভা

প্রকল্প ডিরেক্টরি নিম্নলিখিত অন্তর্ভুক্ত:

  • src.main ডিরেক্টরিতে অ্যাপ্লিকেশনটি সফলভাবে চালানোর জন্য সোর্স কোড এবং কনফিগারেশন রয়েছে। এই ডিরেক্টরিতে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে: + java.com.addons.spring ডিরেক্টরিতে Application.java এবং Controller.java ফাইল রয়েছে। Application.java ফাইলটি অ্যাপ্লিকেশন সার্ভার চালানোর জন্য দায়ী যখন Controller.java ফাইলটি এন্ডপয়েন্ট লজিক পরিচালনা করে। + resources ডিরেক্টরিতে HTML এবং JavaScript ফাইল সহ templates ডিরেক্টরি রয়েছে। এটিতে application.properties ফাইলও রয়েছে যা সার্ভার চালানোর জন্য পোর্ট, কীস্টোর ফাইলের পাথ এবং templates ডিরেক্টরির পথ নির্দিষ্ট করে। এই উদাহরণে resources ডিরেক্টরিতে কীস্টোর ফাইল অন্তর্ভুক্ত রয়েছে। আপনি যেখানে খুশি সেখানে এটি সংরক্ষণ করতে পারেন, তবে নিশ্চিত করুন যে আপনি সেই অনুযায়ী পাথ সহ application.properties ফাইলটি আপডেট করেছেন৷
    • pom.xml প্রকল্প নির্মাণ এবং প্রয়োজনীয় নির্ভরতা সংজ্ঞায়িত করার জন্য প্রয়োজনীয় তথ্য রয়েছে।
    • .gitignore এ ফাইলের নাম রয়েছে যা git-এ আপলোড করা উচিত নয়। নিশ্চিত করুন যে আপনি এই .gitignore এ আপনার কীস্টোরে পাথ যোগ করেছেন। প্রদত্ত উদাহরণে, এটি হল secrets/*.p12 (কীস্টোরের উদ্দেশ্য নীচের বিভাগে আলোচনা করা হয়েছে)। ওয়াকথ্রু 2 এবং তার বাইরের জন্য, আপনি একটি দূরবর্তী সংগ্রহস্থলে আপনার গোপনীয়তাগুলিকে অন্তর্ভুক্ত করবেন না তা নিশ্চিত করতে আপনার client_secret.json ফাইলের পথটিও অন্তর্ভুক্ত করা উচিত। ওয়াকথ্রু 3 এবং তার পরেও, আপনাকে H2 ডাটাবেস ফাইল এবং ফাইল ডেটাস্টোর ফ্যাক্টরিতে পাথ যোগ করতে হবে। এই ডেটা স্টোরগুলির সেটআপ সম্পর্কে আরও তথ্য পুনরাবৃত্তি ভিজিট পরিচালনার তৃতীয় ওয়াকথ্রুতে পাওয়া যাবে।
    • mvnw এবং mvnw.cmd হল যথাক্রমে ইউনিক্স এবং উইন্ডোজের জন্য ম্যাভেন র্যাপার এক্সিকিউটেবল। উদাহরণস্বরূপ, ইউনিক্সে ./mvnw --version চালানো অন্যান্য তথ্যের মধ্যে Apache Maven সংস্করণকে আউটপুট করে।
    • .mvn ডিরেক্টরিতে Maven র্যাপারের জন্য কনফিগারেশন রয়েছে।

নমুনা সার্ভার চালান

এটি পরীক্ষা করার জন্য আপনাকে আপনার সার্ভার চালু করতে হবে। আপনার পছন্দের ভাষায় উদাহরণ সার্ভার চালানোর জন্য নীচের নির্দেশাবলী অনুসরণ করুন:

পাইথন

OAuth শংসাপত্র

উপরে বর্ণিত হিসাবে আপনার OAuth শংসাপত্রগুলি তৈরি করুন এবং ডাউনলোড করুন৷ আপনার অ্যাপ্লিকেশনের সার্ভার লঞ্চ ফাইলের পাশাপাশি রুট ডিরেক্টরিতে .json ফাইলটি রাখুন।

সার্ভার কনফিগার করুন

ওয়েব সার্ভার চালানোর জন্য আপনার কাছে বেশ কয়েকটি বিকল্প রয়েছে। আপনার পাইথন ফাইলের শেষে, নিম্নলিখিতগুলির মধ্যে একটি যোগ করুন:

  1. অনিরাপদ localhost । মনে রাখবেন যে এটি শুধুমাত্র ব্রাউজার উইন্ডোতে সরাসরি পরীক্ষার জন্য উপযুক্ত; ক্লাসরুম অ্যাড-অন আইফ্রেমে অসুরক্ষিত ডোমেন লোড করা যাবে না।

    if __name__ == "__main__":
      # Disable OAuthlib's HTTPs verification.
      os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
    
      # Run the web app at http://localhost:5000.
      app.run(debug=True)
    
  2. নিরাপদ localhostssl_context আর্গুমেন্টের জন্য আপনাকে SSL কী ফাইলের একটি টিপল নির্দিষ্ট করতে হবে।

    if __name__ == "__main__":
      # Run the web app at https://localhost:5000.
      app.run(host="localhost",
              ssl_context=("localhost.pem", "localhost-key.pem"),
              debug=True)
    
  3. গুনিকর্ন সার্ভার। এটি একটি উত্পাদন-প্রস্তুত সার্ভার বা ক্লাউড স্থাপনার জন্য উপযুক্ত। আমরা এই লঞ্চ বিকল্পের সাথে ব্যবহারের জন্য একটি PORT পরিবেশ পরিবর্তনশীল সেট করার পরামর্শ দিই।

    if __name__ == "__main__":
      # Run the web app at https://<your domain>:<server_port>.
      # Defaults to https://<your domain>:8080.
      server_port = os.environ.get("PORT", "8080")
      app.run(debug=True, port=server_port, host="0.0.0.0")
    

সার্ভার চালু করুন

পূর্ববর্তী ধাপে কনফিগার করা সার্ভারটি চালু করতে আপনার পাইথন অ্যাপ্লিকেশনটি চালান।

python main.py

একটি ব্রাউজারে আপনার ওয়েব অ্যাপটি সঠিকভাবে চলছে কিনা তা নিশ্চিত করতে প্রদর্শিত URLটিতে ক্লিক করুন৷

Node.js

সার্ভার কনফিগার করুন

HTTPS-এর মাধ্যমে সার্ভার চালানোর জন্য, আপনাকে একটি স্ব-শংসাপত্র তৈরি করতে হবে যা HTTPS-এর মাধ্যমে অ্যাপ্লিকেশন চালানোর জন্য ব্যবহৃত হয়। এই শংসাপত্রগুলি সংগ্রহস্থলের রুট ফোল্ডারে sslcert/cert.pem এবং sslcert/key.pem হিসাবে সংরক্ষণ করা উচিত। আপনার ব্রাউজার যাতে সেগুলি গ্রহণ করতে পারে তার জন্য আপনাকে আপনার OS কী চেইনে এই কীগুলি যুক্ত করতে হতে পারে৷

নিশ্চিত করুন যে *.pem আপনার .gitignore ফাইলে রয়েছে কারণ আপনি ফাইলটিকে git-এ কমিট করতে চান না।

সার্ভার চালু করুন

আপনি একটি সার্ভার হিসাবে যে সঠিক ধাপটি চালাতে চান তার জন্য step01 প্রতিস্থাপন করে নিম্নলিখিত কমান্ড দিয়ে অ্যাপ্লিকেশনটি চালাতে পারেন (উদাহরণস্বরূপ, 01-বেসিক-অ্যাপের জন্য step01 এবং 02-সাইন-ইন করার জন্য step02 )।

npm run step01

বা

npm run step02

এটি https://localhost:3000 এ ওয়েব সার্ভার চালু করে।

আপনি আপনার টার্মিনালে Control + C দিয়ে সার্ভার বন্ধ করতে পারেন।

জাভা

সার্ভার কনফিগার করুন

HTTPS-এর মাধ্যমে সার্ভার চালানোর জন্য, আপনাকে একটি স্ব-শংসাপত্র তৈরি করতে হবে যা HTTPS-এর মাধ্যমে অ্যাপ্লিকেশন চালানোর জন্য ব্যবহৃত হয়।

স্থানীয় উন্নয়নের জন্য mkcert ব্যবহার বিবেচনা করুন। আপনি mkcert ইনস্টল করার পরে, নিম্নলিখিত কমান্ডগুলি HTTPS-এ চালানোর জন্য একটি স্থানীয়ভাবে সঞ্চিত শংসাপত্র তৈরি করে।

mkcert -install
mkcert -pkcs12 -p12-file <path_to_keystore> <domain_name>

এই উদাহরণে সম্পদ ডিরেক্টরিতে কীস্টোর ফাইল অন্তর্ভুক্ত রয়েছে। আপনি যেখানে খুশি সেখানে এটি সংরক্ষণ করতে পারেন, তবে নিশ্চিত করুন যে আপনি সেই অনুযায়ী পাথ সহ application.properties ফাইলটি আপডেট করেছেন৷ ডোমেন নাম হল সেই ডোমেইন যা আপনি প্রজেক্ট চালান (উদাহরণস্বরূপ, localhost )।

নিশ্চিত করুন যে *.p12 আপনার .gitignore ফাইলে রয়েছে কারণ আপনি ফাইলটিকে গিট-এ কমিট করতে চান না।

সার্ভার চালু করুন

Application.java ফাইলে main পদ্ধতিটি চালিয়ে সার্ভারটি চালু করুন। ইন্টেলিজে, উদাহরণস্বরূপ, আপনি হয় রাইট-ক্লিক করতে পারেন Application.java > src/main/java/com/addons/spring ডিরেক্টরিতে Run 'Application' অথবা বাম দিকে সবুজ তীরটি ক্লিক করতে Application.java ফাইলটি খুলতে পারেন। main(String[] args) পদ্ধতি স্বাক্ষর। বিকল্পভাবে, আপনি একটি টার্মিনাল উইন্ডোতে প্রকল্পটি চালাতে পারেন:

./mvnw spring-boot:run

অথবা উইন্ডোজে:

mvnw.cmd spring-boot:run

এটি https://localhost:5000 বা application.properties এ আপনার নির্দিষ্ট করা পোর্টে সার্ভার চালু করে।