فراخوانی APIها از پروژه Google Cloud

۱. قبل از شروع

این آزمایشگاه کد به شما نشان می‌دهد که چگونه یک پروژه گوگل کلود ایجاد کنید و سپس APIهای گوگل کلود را از آن پروژه فراخوانی کنید.

پیش‌نیازها

  • امکان پیمایش در کنسول ابری گوگل.

آنچه یاد خواهید گرفت

  • نحوه ایجاد یک پروژه گوگل کلود
  • نحوه تنظیم حساب صورتحساب.
  • نحوه راه‌اندازی Cloud Shell.
  • نحوه فعال کردن API.
  • نحوه‌ی مجاز کردن یک API با استفاده از کلید API.
  • نحوه‌ی تأیید اعتبار یک API با یک حساب کاربری سرویس.

آنچه نیاز دارید

۲. آماده شوید

این بخش به شما نشان می‌دهد که چگونه یک پروژه گوگل کلود ایجاد کنید، یک حساب پرداخت راه‌اندازی کنید و پوسته کلود را راه‌اندازی کنید.

یک پروژه Google Cloud ایجاد کنید و یک حساب صورتحساب تنظیم کنید

  1. وارد Cloud Console شوید و یک پروژه انتخاب یا ایجاد کنید.

فضای ابری گوگل

پنل پروژه جدید

پنجره پروژه جدید که فیلدهای نام پروژه، سازمان و مکان را نشان می‌دهد.

شناسه پروژه را که در زیر فیلد نام پروژه نشان داده شده است، به خاطر بسپارید. شناسه یک نام منحصر به فرد در تمام پروژه‌های Google Cloud است (نام بالا قبلاً انتخاب شده است) و بعداً در این آزمایشگاه کد به عنوان PROJECT_ID به آن اشاره می‌شود.

  1. در مرحله بعد، برای استفاده از منابع گوگل کلود ، پرداخت را در کنسول ابری فعال کنید .

اگرچه این codelab نباید هزینه زیادی داشته باشد، اما اگر هزینه‌ای داشته باشد، دستورالعمل‌های بخش Clean up را دنبال کنید تا منابع را خاموش کنید و از هزینه‌های فراتر از این codelab جلوگیری کنید. توجه داشته باشید که کاربران جدید Google Cloud واجد شرایط دریافت نسخه آزمایشی رایگان ۳۰۰ دلاری هستند.

راه‌اندازی پوسته ابری

در این آزمایشگاه کد، شما از Cloud Shell ، یک محیط خط فرمان که در Google Cloud اجرا می‌شود، استفاده می‌کنید. Cloud Shell یک ماشین مجازی مبتنی بر Debian است که با تمام ابزارهای توسعه مورد نیاز شما بارگذاری شده است. این ماشین مجازی یک دایرکتوری خانگی پایدار 5 گیگابایتی ارائه می‌دهد که عملکرد شبکه و احراز هویت را تا حد زیادی افزایش می‌دهد. این بدان معناست که تنها چیزی که برای این آزمایشگاه کد نیاز دارید یک مرورگر است.

برای فعال کردن Cloud Shell از کنسول ابری:

  1. کلیک a8460e837e9f5fda.png پوسته ابری را فعال کنید .

ممکن است چند لحظه طول بکشد تا آماده‌سازی انجام شود و به محیط متصل شوید.

گزینه Cloud Shell را فعال کنید.

Cloud Shell اعلان خط فرمان را نشان می‌دهد.

پس از اتصال به Cloud Shell، باید ببینید که از قبل احراز هویت شده‌اید و پروژه از قبل روی PROJECT_ID شما تنظیم شده است.

  1. لیستی از حساب‌های کاربری معتبر ایجاد کنید:
gcloud auth list

شما باید خروجی زیر را ببینید:

Credentialed accounts:
 - <MY_ACCOUNT>@<MY_DOMAIN>.com (active)
  1. برای دیدن لیستی از پروژه‌های خود، این دستور را وارد کنید.
gcloud config list project

شما باید خروجی زیر را ببینید:

[core]
project = <PROJECT_ID>

اگر به هر دلیلی پروژه تنظیم نشده است، این دستور را برای تنظیم پروژه اجرا کنید.

gcloud config set project <PROJECT_ID>

PROJECT_ID همان شناسه‌ای است که در مراحل راه‌اندازی استفاده کردید. همچنین می‌توانید آن را در داشبورد Cloud Console جستجو کنید:

پنجره اطلاعات پروژه که شناسه پروژه را نشان می‌دهد.

Cloud Shell همچنین برخی از متغیرهای محیطی را به طور پیش‌فرض تنظیم می‌کند که ممکن است هنگام اجرای دستورات بعدی مفید باشند.

  1. برای مشاهده شناسه پروژه خود، دستور زیر را وارد کنید.
echo $GOOGLE_CLOUD_PROJECT

شما باید خروجی زیر را ببینید:

<PROJECT_ID>
  1. در نهایت، منطقه پیش‌فرض و پیکربندی پروژه را تنظیم کنید.
gcloud config set compute/zone us-central1-f

شما می‌توانید مناطق مختلفی را انتخاب کنید. برای اطلاعات بیشتر، به بخش مناطق و نواحی مراجعه کنید.

۳. فراخوانی یک API از یک پروژه

این آزمایشگاه کد به شما نشان می‌دهد که چگونه از یک API نمونه ( API زبان طبیعی ) برای یافتن موجودیت‌ها (مانند افراد، مکان‌ها و رویدادها) در متن استفاده کنید و چگونه می‌توانید احساسات (سطح مطلوبیت) آن متن را تخمین بزنید. شما یاد می‌گیرید که چگونه:

  • فعال کردن APIهای گوگل کلود
  • با استفاده از کلیدهای API و حساب‌های سرویس، مجوز API را دریافت کنید.
  • API را با استفاده از curl و کتابخانه‌های کلاینت فراخوانی کنید.

فعال کردن یک API

  1. از منوی اصلی در کنسول ابری، گزینه APIs & Services را انتخاب کنید.

منوی اصلی Cloud Console که گزینه APIها و خدمات را نشان می‌دهد.

  1. از بالای صفحه، گزینه +ENABLE APIS AND SERVICES را انتخاب کنید.

گزینه فعال کردن APIها و خدمات (ENABLE APIS AND SERVICES)

  1. در این مرحله، می‌توانید APIها را فیلتر و مرور کنید، یا مستقیماً با کادر جستجو به یک API بروید. عبارت Natural Language را جستجو کنید و Cloud Natural Language API را انتخاب کنید.

صفحه API زبان طبیعی ابری که دکمه‌های فعال‌سازی (ENABLE) و امتحان این API را نشان می‌دهد.

  1. روی «این API را امتحان کنید» کلیک کنید.

اگر دکمه‌ی «این API را امتحان کنید» نمایش داده نشد، روی یکی از روش‌های فهرست‌شده کلیک کنید تا آن روش را امتحان کنید.

ایجاد کلید API

از آنجا که شما curl برای ارسال درخواست به API زبان طبیعی استفاده می‌کنید، باید یک کلید API برای ارسال URL درخواست خود ایجاد کنید.

  1. در کنسول ابری، منوی ناوبری > APIها و خدمات > اعتبارنامه‌ها را انتخاب کنید.

منوی ناوبری که گزینه‌های APIها و خدمات و اعتبارنامه‌ها را نشان می‌دهد.

  1. روی CREATE CREDENTIALS کلیک کنید و سپس API key را انتخاب کنید:

صفحه اعتبارنامه‌ها که گزینه‌های ایجاد اعتبارنامه و کلید API را نشان می‌دهد.

  1. کلید API تولید شده را کپی کنید و سپس روی بستن کلیک کنید.

برای فراخوانی API از کلید API استفاده کنید

  1. در خط فرمان Cloud Shell، کلید API خود را صادر کنید.
export API_KEY=<YOUR_API_KEY>

<YOUR_API_KEY> را با کلیدی که قبلاً ایجاد کرده‌اید جایگزین کنید.

  1. یک درخواست برای API در ویرایشگر Cloud Shell یا با یک ویرایشگر لینوکس مانند Vim یا Emacs ایجاد کنید. می‌توانید جزئیات پارامترها را در Method: documents.analyzeEntities پیدا کنید. خروجی را در فایلی به نام request.json ذخیره کنید:
{
  "document":{
    "type":"PLAIN_TEXT",
    "content":"Google, headquartered in Mountain View (1600 Amphitheatre Pkwy, Mountain View, CA 940430), unveiled the new Android phone for $799 at the Consumer Electronic Show. Sundar Pichai said in his keynote that users love their new Android phones."
  },
  "encodingType":"UTF8"
}
  1. با اطلاعات درخواست، API را فراخوانی کنید.
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \
  -s -X POST -H "Content-Type: application/json" --data-binary @request.json
  1. دستور را دوباره اجرا کنید و خروجی را به یک فایل هدایت کنید و نتیجه را بررسی کنید. جزئیات خروجی فایل JSON نیز در Method: documents.analyzeEntities قرار دارد.
  2. برای تغییر متن مورد نظر برای تجزیه و تحلیل در فایل request.json ، مقدار content را با متن دلخواه خود جایگزین کنید.

۴. با یک حساب کاربری سرویس، مجوز دهید

حساب‌های کاربری سرویس اغلب نسبت به کلیدهای API ترجیح داده می‌شوند، زیرا هم احراز هویت و هم مجوز را فراهم می‌کنند. می‌توانید حساب‌های کاربری سرویس را به عنوان آدرس‌های ایمیل برای برنامه خود در نظر بگیرید.

  1. به بخش اعتبارنامه‌ها از منوی APIها و خدمات برگردید.
  2. گزینه «ایجاد اعتبارنامه‌ها» را انتخاب کنید، اما این بار، «حساب سرویس» را انتخاب کنید.

صفحه جزئیات حساب خدمات.

  1. یک نام برای حساب سرویس وارد کنید که هدف آن را توصیف کند، مانند « Natural Language Service Account ». سیستم یک شناسه پیشنهاد می‌دهد. همچنین می‌توانید توضیحی اضافه کنید. با کسب اطلاعات بیشتر در مورد حساب‌های سرویس، دسترسی حساب سرویس به پروژه‌ها و دسترسی کاربران به حساب سرویس را فراهم می‌کنید، اما فعلاً، برای ایجاد حساب سرویس، روی «انجام شد» کلیک کنید.
  2. برای ایجاد یک جفت کلید برای استفاده حساب سرویس، کلیک کنید d489bd059474ae59.png برای ویرایش حساب سرویس.

صفحه حساب‌های سرویس که لیستی از حساب‌ها را نشان می‌دهد.

جزئیات حساب کاربری سرویس شما نمایش داده می‌شود.

صفحه جزئیات حساب سرویس که جزئیات مربوط به حساب سرویس زبان طبیعی را نشان می‌دهد.

  1. آدرس ایمیل حساب سرویس را کپی کنید و به Cloud Shell برگردید.
  2. در Cloud Shell، یک جفت کلید برای حساب سرویس خود ایجاد کنید و یک متغیر محیطی برای اشاره به آن تنظیم کنید:
gcloud iam service-accounts keys create ~/key.json \
  --iam-account <your service account email>
export GOOGLE_APPLICATION_CREDENTIALS="/home/$USER/key.json"

گوگل کلود از این متغیر محیطی برای یافتن اعتبارنامه‌ها استفاده می‌کند، بنابراین نیازی به گنجاندن آنها در فراخوانی API نیست.

  1. اکنون می‌توانید API را با دستور زیر فراخوانی کنید:
gcloud ml language analyze-entities --content="Michelangelo Caravaggio, Italian painter, is known for 'The Calling of Saint Matthew'." 

نتیجه باید مانند قبل باشد.

بسیاری از APIها کتابخانه‌های کلاینت گسترده‌ای برای استخراج این جزئیات دارند. برای کسب اطلاعات بیشتر در مورد کتابخانه‌های کلاینت، به Cloud Client Libraries مراجعه کنید. همچنین می‌توانید مستندات مربوط به APIهایی که استفاده می‌کنید را مطالعه کنید تا ببینید چه کتابخانه‌های کلاینتی برای آنها در دسترس است.

۵. تمیز کردن

داشتن کلید API نامحدود برای پروژه‌ها، رویه بدی است. اگر کسی به آن دسترسی پیدا کند، می‌تواند بدون نیاز به احراز هویت بیشتر، از آن استفاده کند.

برای حذف این کلید API:

  1. کلیک f6b6844bf5688982.png منوی پیمایش > APIها و سرویس‌ها > اعتبارنامه‌ها .
  2. در قسمت API Keys ، کلیدی که می‌خواهید حذف کنید را انتخاب کنید و سپس روی آن کلیک کنید. ۲۴۷adf2e1d1eae4b.png حذف کنید .
  3. به همین ترتیب، به جای نگرانی در مورد محافظت نشدن کلید خصوصی حساب سرویس خود، در قسمت حساب‌های سرویس ، حساب سرویس مورد نظر برای حذف را انتخاب کرده و سپس روی ۲۴۷adf2e1d1eae4b.png حذف کنید .

۶. تبریک

تبریک! شما یاد گرفتید که چگونه یک پروژه Google Cloud ایجاد کنید و چگونه یک API را از درون پروژه فراخوانی کنید.