সার্ভিস অ্যাকাউন্ট হলো এমন একটি অ্যাকাউন্ট যা কোনো এন্ড ইউজারের পরিবর্তে একটি অ্যাপ্লিকেশনের সাথে যুক্ত থাকে। আপনি যদি কোনো অ্যাপ তৈরি করেন বা REST API ব্যবহার করেন, তবে Earth Engine-এ অথেন্টিকেট করার জন্য আপনার একটি সার্ভিস অ্যাকাউন্ট ব্যবহার করার প্রয়োজন হতে পারে । সার্ভিস অ্যাকাউন্টের মাধ্যমে অথেন্টিকেট করা সম্পর্কে আরও জানুন।
একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন
প্রথমে, একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন, যদি আগে থেকে তা করা না থাকে।
আপনার ক্লাউড প্রজেক্টের সার্ভিস অ্যাকাউন্টগুলো পরিচালনা করতে, ক্লাউড কনসোল মেনুতে ( ) গিয়ে IAM & Admin > Service accounts নির্বাচন করুন। (প্রয়োজনে প্রজেক্টটি বেছে নিন।)
নতুন সার্ভিস অ্যাকাউন্ট তৈরি করতে, + CREATE SERVICE ACCOUNT লিঙ্কে ক্লিক করুন।
আপনি যদি একটি অ্যাপ ইঞ্জিন প্রজেক্ট তৈরি করে থাকেন, তাহলে সেই প্রজেক্টের জন্য আপনার আগে থেকেই একটি ডিফল্ট সার্ভিস অ্যাকাউন্ট ( অ্যাপ ইঞ্জিন ডিফল্ট সার্ভিস অ্যাকাউন্ট ) থাকতে পারে। আপনি যদি একটি অ্যাপ ইঞ্জিন প্রজেক্ট সেট আপ করেন, তাহলে সার্ভিস অ্যাকাউন্টের 'Role'- এর জন্য 'Project > Editor' বেছে নিন।
আর্থ ইঞ্জিন ব্যবহার করার জন্য সার্ভিস অ্যাকাউন্টটি কনফিগার করুন।
সমস্ত সার্ভিস অ্যাকাউন্ট একটি ক্লাউড প্রজেক্টের মধ্যে তৈরি করা হয়, যা আপনার অ্যাপ ইঞ্জিন অ্যাপ বা ক্লাউড ভিএম-এর জন্য ব্যবহৃত একই প্রজেক্ট হতে পারে। নিশ্চিত করুন যে ক্লাউড প্রজেক্টটি আর্থ ইঞ্জিন অ্যাক্সেস করার জন্য নিবন্ধিত আছে এবং প্রজেক্টটিতে আর্থ ইঞ্জিন এপিআই সক্রিয় করা আছে । প্রজেক্টের সঠিক অনুমতিসহ সমস্ত সার্ভিস অ্যাকাউন্ট আর্থ ইঞ্জিন অ্যাক্সেস করতে পারবে।
অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করে আর্থ ইঞ্জিনে প্রমাণীকরণ করুন
ম্যানুয়ালি প্রাইভেট কী পরিচালনা না করে আনঅ্যাটেন্ডেড পরিবেশে (যেমন ক্লাউড রান বা কম্পিউট ইঞ্জিন) প্রমাণীকরণের জন্য অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়ালস (ADC) হলো প্রস্তাবিত পদ্ধতি।
import google.auth import ee credentials, project_id = google.auth.default() ee.Initialize(credentials, project='my-ee-project')
ব্যক্তিগত কী দিয়ে প্রমাণীকরণ করুন
যদি আপনার অ্যাপ্লিকেশনটিকে একটি সার্ভিস অ্যাকাউন্টের প্রাইভেট কী ব্যবহার করে প্রমাণীকরণ করতে হয় (প্রোডাকশন এনভায়রনমেন্টের জন্য এটি সুপারিশ করা হয় না, যেখানে ADC ব্যবহার করা যেতে পারে):
- সার্ভিস অ্যাকাউন্টের জন্য একটি প্রাইভেট কী তৈরি করুন:
- ক্লাউড কনসোলের সার্ভিস অ্যাকাউন্টস পৃষ্ঠায় যান।
- অ্যাকাউন্টের মেনুতে ক্লিক করুন ( ), তারপর Create key > JSON ।
- JSON কী ফাইলটি ডাউনলোড করুন।
- আপনার কী ফাইলটি সুরক্ষিত রাখুন। কী ফাইল হলো একটি বিশেষ ফাইল যা প্রোগ্রামগুলোকে আপনার সার্ভিস অ্যাকাউন্টের পক্ষ থেকে গুগল এপিআই (Google APIs) অ্যাক্সেস করার অনুমতি দেয়। আপনার প্রাইভেট কী কখনোই কোনো পাবলিক জায়গায় রাখবেন না। যদি আপনি আপনার প্রাইভেট কী হারিয়ে ফেলেন, তাহলে আপনি ক্লাউড কনসোল (Cloud Console) ব্যবহার করে একটি সার্ভিস অ্যাকাউন্টের অ্যাক্সেস বাতিল করতে এবং নতুন একটি তৈরি করতে পারবেন। বিস্তারিত জানতে ‘সার্ভিস অ্যাকাউন্টের কী তৈরি এবং মুছে ফেলা’ (Create and delete service account keys) দেখুন।
- আপনি
.private-key.jsonফাইলটি যেখানে রেখেছেন, সেখান থেকে নিম্নলিখিত পাইথন কোডটি পরীক্ষা করুন:import ee service_account = 'my-service-account@...gserviceaccount.com' credentials = ee.ServiceAccountCredentials(service_account, '.private-key.json') ee.Initialize(credentials)
যদি আপনি কোনো ত্রুটি ছাড়াই এটি চালু করতে পারেন, তাহলে আপনার পরিষেবা অ্যাকাউন্টটি ব্যবহারের জন্য প্রস্তুত।
Compute Engine-এ একটি ডিফল্ট পরিষেবা অ্যাকাউন্ট ব্যবহার করুন
আপনি যদি একটি ডিফল্ট সার্ভিস অ্যাকাউন্ট ব্যবহার করেন, তাহলে প্রথমে আপনাকে Compute Engine সার্ভিস অ্যাকাউন্টের জন্য VM-এর অ্যাক্সেস স্কোপ পরিবর্তন করে "সমস্ত ক্লাউড এপিআই-তে সম্পূর্ণ অ্যাক্সেসের অনুমতি দিন" (Allow full access to all Cloud APIs) বিকল্পটি নির্বাচন করতে হবে। (আপনি যদি Dataflow বা App Engine-এ ডিফল্ট সার্ভিস অ্যাকাউন্ট ব্যবহার করেন, তাহলে এই ধাপটি প্রয়োজনীয় নয়।)ডিফল্ট সার্ভিস অ্যাকাউন্ট ব্যবহার করে আর্থ ইঞ্জিনে প্রমাণীকরণের জন্য, নিম্নলিখিত কোডটি ব্যবহার করুন:
from google.auth import compute_engine import ee credentials = compute_engine.Credentials(scopes=['https://www.googleapis.com/auth/earthengine']) ee.Initialize(credentials)
REST API অ্যাক্সেস সেট আপ করুন
যদি সার্ভিস অ্যাকাউন্টটি REST API ব্যবহার করে গণনা করতে চায়, তাহলে আপনাকে এটিকে প্রজেক্ট-স্তরের অনুমতি দিতে হবে, বিশেষত ‘ Earth Engine Resource Viewer’ রোলটি । আপনার প্রজেক্ট কনফিগারেশনের উপর নির্ভর করে, আপনাকে সার্ভিস অ্যাকাউন্টটিকে ‘ Service Usage Consumer’ রোলটিও দিতে হতে পারে। Earth Engine ব্যবহার করার জন্য প্রয়োজনীয় প্রজেক্ট অনুমতি সম্পর্কে আরও তথ্যের জন্য ‘Access Control’ পৃষ্ঠাটি দেখুন।
সমস্যা সমাধান
ত্রুটি: invalid_grant
OAuth2 ঘড়ির সময়ের অসামঞ্জস্যের প্রতি খুব সংবেদনশীল হতে পারে। আপনি যদি নিশ্চিত হন যে সবকিছু সঠিকভাবে সেট আপ করেছেন, তবে আপনার কম্পিউটারের ঘড়ি নেটওয়ার্কের সময়ের সাথে সিঙ্ক্রোনাইজ করা আছে কিনা তা পরীক্ষা করে দেখুন।
ক্লাউড স্টোরেজে এক্সপোর্ট করার সময় ত্রুটি: "প্রদত্ত স্কোপ(গুলি) অনুমোদিত নয়"
ক্লাউড রান টাস্ক চালানোর সময় যদি এই ত্রুটিটি দেখতে পান, তাহলে ক্রেডেনশিয়াল তৈরি করার সময় scopes আর্গুমেন্টটি সেট করবেন না (যেমন, google.auth.default(scopes=...) -এ)। ‘scopes’ নির্দিষ্ট করলে এই পরিবেশে ডিফল্ট পারমিশনের সাথে সমস্যা হতে পারে।