حساب سرویس یک حساب مرتبط با یک برنامه کاربردی است تا یک کاربر نهایی. اگر برنامهای را توسعه میدهید یا از REST API استفاده میکنید، ممکن است لازم باشد از یک حساب سرویس برای احراز هویت در Earth Engine استفاده کنید. درباره احراز هویت با حسابهای سرویس بیشتر بیاموزید.
یک حساب کاربری ایجاد کنید
اگر قبلاً این کار را نکرده اید ابتدا یک پروژه Google Cloud ایجاد کنید .
با رفتن به منوی Cloud Console ( حسابهای سرویس ، میتوانید حسابهای خدمات پروژه Cloud خود را مدیریت کنید. (در صورت درخواست، پروژه را انتخاب کنید.)
) و انتخاب IAM & Admin >برای ایجاد یک حساب سرویس جدید، روی پیوند + ایجاد حساب سرویس کلیک کنید.
اگر یک پروژه App Engine ایجاد کردهاید، ممکن است قبلاً یک حساب سرویس پیشفرض ( حساب سرویس پیشفرض App Engine ) برای آن پروژه داشته باشید. اگر در حال راهاندازی یک پروژه App Engine هستید، برای نقش حساب سرویس، پروژه > ویرایشگر را انتخاب کنید.
یک کلید خصوصی برای حساب سرویس ایجاد کنید
هنگامی که یک حساب سرویس دارید، روی منوی آن حساب (
) و سپس Create key > JSON کلیک کنید. فایل کلید JSON را دانلود کنید.فایل کلید خود را ایمن نگه دارید
فایل کلید یک فایل ویژه است که به برنامه ها اجازه می دهد از طرف حساب سرویس شما به API های Google دسترسی داشته باشند. اطمینان حاصل کنید که دسترسی غیرمجاز به آن برای کسی امکان پذیر نیست، زیرا آنها می توانند از طرف شما به API های Google دسترسی داشته باشند. هرگز کلید خصوصی خود را در یک مکان عمومی مانند یک پوشه مشترک یا یک مخزن منبع ذخیره نکنید. اگر کلید خصوصی خود را اشتباه قرار دهید، می توانید به راحتی دسترسی به یک حساب سرویس را لغو کنید و یک حساب جدید با استفاده از Cloud Console ایجاد کنید. برای جزئیات بیشتر به این راهنما مراجعه کنید.
برای استفاده از Earth Engine، حساب سرویس را ثبت کنید
همه حسابهای سرویس در یک پروژه Cloud ایجاد میشوند، که ممکن است همان پروژه مورد استفاده برای برنامه App Engine یا Cloud VM شما باشد. مطمئن شوید که پروژه Cloud برای دسترسی به Earth Engine ثبت شده است و API Engine Earth در پروژه فعال است . همه حسابهای سرویس در پروژه با مجوزهای صحیح به Earth Engine دسترسی خواهند داشت و نیازی به ثبت جداگانه آنها نیست.
توجه داشته باشید که ثبت حساب خدمات فردی دیگر امکان پذیر نیست. خود پروژه Cloud باید ثبت شود.
از یک حساب کاربری با کلید خصوصی استفاده کنید
برای احراز هویت به Earth Engine با استفاده از حساب سرویس:
- یک فایل کلید خصوصی JSON (
.private-key.json
) برای حساب سرویس ایجاد و دانلود کنید. - کد پایتون زیر را از هر جایی که فایل
.private-key.json
را قرار دادید تست کنید:import ee service_account = 'my-service-account@...gserviceaccount.com' credentials = ee.ServiceAccountCredentials(service_account, '.private-key.json') ee.Initialize(credentials)
اگر بتوانید بدون خطا مقداردهی اولیه کنید، حساب سرویس شما آماده استفاده است.
در صورت دریافت خطای invalid_grant چه کار کنم؟
OAuth2 می تواند به انحراف ساعت بسیار حساس باشد. اگر مطمئن هستید که همه چیز را به درستی تنظیم کرده اید و مخاطب Google شما تأیید کرده است که حساب سرویس تأیید شده است، بررسی کنید که آیا ساعت رایانه شما با زمان شبکه همگام شده است یا خیر.
برای سیستم های اوبونتو، تماس برای همگام سازی ساعت رایانه شما به صورت زیر است:
ntpdate ntp.ubuntu.com
برای سیستمهایی که از OS X استفاده میکنند، System Preferences > Date & Time > Date & Time (دوباره) را باز کنید و Set date and time automatically را انتخاب کنید.
از یک حساب سرویس پیش فرض استفاده کنید
اگر از یک حساب سرویس پیشفرض استفاده میکنید، ابتدا باید محدوده دسترسی ماشین مجازی را برای حساب خدمات موتور محاسباتی به «اجازه دسترسی کامل به همه APIهای ابری» تغییر دهید . (اگر از حساب های خدمات پیش فرض در Dataflow یا App Engine استفاده می کنید، این مرحله ضروری نیست.)برای احراز هویت به Earth 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 را بدهید. بسته به پیکربندی پروژه خود، ممکن است لازم باشد به حساب سرویس نقش مصرف کننده سرویس را نیز بدهید. برای اطلاعات بیشتر در مورد مجوزهای پروژه مورد نیاز برای استفاده از Earth Engine، صفحه کنترل دسترسی را ببینید.