۱. مرور کلی
پاورشل یک پوسته خط فرمان و زبان اسکریپتنویسی مرتبط است که بر روی چارچوب داتنت ساخته شده است. این ابزار پیشفرض اتوماسیون وظایف و مدیریت پیکربندی است که در دنیای ویندوز استفاده میشود. یک cmdlet پاورشل یک دستور سبک است که در پاورشل فراخوانی میشود.
ابزارهای ابری برای پاورشل مجموعهای از دستورات برای دسترسی و دستکاری منابع ابری گوگل مانند Google Compute Engine، Google Cloud Storage، Google Cloud SQL و Google Cloud DNS است - و موارد بیشتری در راه است!
با این آزمایشگاه همراه شوید تا نحوه تعامل با منابع Google Cloud از طریق PowerShell را بیاموزید.
آنچه یاد خواهید گرفت
- نحوه نصب ابزارهای ابری برای پاورشل.
- نحوه احراز هویت با Google Cloud SDK.
- نحوه ایجاد و مدیریت Google Compute Engine از طریق PowerShell.
- نحوه پشتیبان گیری از داده ها در فضای ابری گوگل از طریق پاورشل
آنچه نیاز دارید
چگونه از این آموزش استفاده خواهید کرد؟
تجربه خود را با پلتفرم ابری گوگل چگونه ارزیابی میکنید؟
۲. تنظیمات و الزامات
برای این آزمایشگاه کد، به یک پروژه Google Cloud برای تعامل با PowerShell نیاز دارید. اگر یک پروژه موجود دارید، میتوانید از آن استفاده کنید یا میتوانید با استفاده از مراحل زیر یک پروژه جدید ایجاد کنید.
تنظیم محیط خودتنظیم
اگر از قبل حساب گوگل (Gmail یا GSuite) ندارید، باید یکی ایجاد کنید . وارد کنسول Google Cloud ( console.cloud.google.com ) شوید و یک پروژه جدید ایجاد کنید:


شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژههای پلتفرم ابری گوگل. بعداً در این آزمایشگاه کد به آن PROJECT_ID گفته خواهد شد.
در مرحله بعد، برای استفاده از منابع پلتفرم ابری گوگل مانند Google Cloud Datastore و Cloud Storage، باید امکان پرداخت را در Google Cloud Console فعال کنید .
کاربران جدید پلتفرم ابری گوگل واجد شرایط دریافت یک دوره آزمایشی رایگان ۳۰۰ دلاری هستند. استفاده از این آزمایشگاه کد نباید بیش از چند دلار برای شما هزینه داشته باشد، اما اگر تصمیم به استفاده از منابع بیشتر بگیرید یا اگر آنها را در حال اجرا رها کنید، میتواند بیشتر هم شود (به بخش «پاکسازی» در انتهای این سند مراجعه کنید).
۳. نصب
نصب در محیط خودتنظیم
دستورات PowerShell به عنوان بخشی از Cloud SDK برای ویندوز ارائه میشوند. اگر قبلاً این کار را انجام ندادهاید، Google Cloud SDK را برای ویندوز دانلود و نصب کنید، همانطور که در راهنمای Quickstart برای ویندوز توضیح داده شده است. هنگام نصب Cloud SDK، مطمئن شوید که گزینه PowerShell را علامت زدهاید.

۴. احراز هویت
ابزارهای ابری برای پاورشل از اعتبارنامهها و تنظیمات ذخیره شده در Cloud SDK استفاده میکنند. بنابراین برای شروع استفاده از cmdletها، ابتدا باید با استفاده از Cloud SDK وارد سیستم شوید.
احراز هویت محیطی خودگام
پوستهی SDK گوگل کلود را اجرا کنید و دستور زیر را اجرا کنید.
gcloud init
گزینه ورود به سیستم با استفاده از حساب کاربری گوگل خود را بپذیرید.
To continue, you must log in. Would you like to log in (Y/n)? Y
در مرورگر خود، وقتی از شما خواسته شد، وارد حساب کاربری گوگل خود شوید و برای اعطای مجوز دسترسی به منابع پلتفرم ابری گوگل، روی «مجاز » کلیک کنید.
در خط فرمان، یک پروژه پلتفرم ابری را از لیست پروژههایی که مجوزهای مالک، ویرایشگر یا مشاهدهگر را دارید، انتخاب کنید.
Pick a cloud project to use:
[1] [my-project-1]
[2] [my-project-2]
...
Please enter your numeric choice:
۵. اجرای دستورات گوگل کلود (Google Cloud) در پاورشل (PowerShell)
پس از احراز هویت، آماده استفاده از دستورات Google Cloud در PowerShell هستید. پوسته خط فرمان PowerShell را پیدا کرده و باز کنید.

برای اطمینان از نصب صحیح دستورات Google Cloud، دستور Get-GceInstance را اجرا کنید. این دستور باید نمونههای Compute Engine موجود در پروژه شما را فهرست کند.

۶. ایجاد و مدیریت نمونههای موتور محاسباتی گوگل
در این بخش، شما Google Compute Engine را از درون Google Cloud Tools for PowerShell ایجاد و مدیریت میکنید.
ایجاد پیکربندی نمونه
قبل از ایجاد یک نمونه، ابتدا باید پیکربندی نمونه را ایجاد کنید. این کار حداقل به یک نام، نوع ماشین و یک تصویر دیسک بوت یا دیسک بوت از پیش موجود نیاز دارد. Get-GceImage برای ایجاد یک تصویر دیسک و New-GceInstanceConfig برای ایجاد پیکربندی استفاده کنید.
$disk = Get-GceImage "windows-cloud" -Family "windows-2012-r2"
$config = New-GceInstanceConfig "my-vm-1" `
-MachineType "n1-standard-4" `
-DiskImage $disk
در این مرحله، شما پیکربندیای دارید که میتوانید برای ایجاد یک نمونه از آن استفاده کنید.
یک نمونه ایجاد کنید
از دستور Add-GceInstance برای ایجاد یک نمونه جدید از Compute Engine استفاده کنید. میتوانید یک پروژه و منطقه مشخص کنید، اما اگر این مورد را حذف کنید، مقادیر پارامتر به طور پیشفرض به مقادیر موجود در پیکربندی فعال فعلی Cloud SDK شما تبدیل میشوند. اگر پروژه را مشخص میکنید، حتماً PROJECT_ID با شناسه پروژه خود جایگزین کنید.
$config | Add-GceInstance -Project PROJECT_ID -Zone europe-west1-b
مدیریت یک نمونه
شما میتوانید از دستور Get-GceInstance برای بازیابی نمونههای ماشین مجازی یک پروژه استفاده کنید. از آنجایی که نام نمونه ممکن است در پروژهها یا مناطق مختلف منحصر به فرد نباشد، میتوانید یک پارامتر Project یا Zone برای محدود کردن جستجو تعیین کنید. به طور پیشفرض، این دستور از هر مقداری که در پیکربندی فعال Cloud SDK وجود دارد، استفاده میکند.
$instance = Get-GceInstance "my-vm-1"
شما میتوانید تگهای نمونه، دیسکها، پیکربندیهای دسترسی و سایر فرادادهها را پس از ایجاد نمونه خود با استفاده از دستور Set-GceInstance تنظیم کنید. برخی از فرادادهها را اضافه کرده و سپس به شرح زیر حذف کنید.
Set-GceInstance $instance -AddMetadata @{"newKey" = "newValue"}
Set-GceInstance $instance -RemoveMetadata "newKey"
Set-GceInstance $instance -RemoveTag "beta" -AddTag "alpha"
حالا، یک تگ اضافه کنید که بعداً برای حذف نمونه از آن استفاده خواهید کرد.
Set-GceInstance $instance -AddTag "to-be-removed"
شما میتوانید با استفاده از cmdlet های مختلف، یک نمونه را شروع، متوقف یا مجدداً راهاندازی کنید. میتوانید با استفاده از نام یا شیء strongly-typed که از cmdlet Get-GceInstance برگردانده شده است، به یک نمونه مراجعه کنید. با برخی از این دستورات بازی کنید.
Stop-GceInstance $instance
Start-GceInstance $instance
Restart-GceInstance "my-vm-1"
در نهایت، وقتی کارتان با نمونه تمام شد، با استفاده از دستور Remove-GceInstance و وارد کردن تگی که قبلاً مشخص کردهاید، آن را از Compute Engine حذف کنید.
Get-GceInstance -Project $project |
Where { $_.Tags.Items -contains "to-be-removed" } |
Remove-GceInstance -WhatIf
۷. پشتیبانگیری از دادهها در فضای ذخیرهسازی ابری گوگل
در این بخش از آزمایشگاه کد، شما با استفاده از ابزارهای ابری برای پاورشل، از دادهها از دستگاه محلی خود در فضای ذخیرهسازی ابری گوگل پشتیبانگیری میکنید.
یک سطل ایجاد کنید
قبل از آپلود فایلها در فضای ذخیرهسازی ابری، باید یک سطل (bucket) ایجاد کنید. از دستور New-GcsBucket برای ایجاد یک سطل جدید استفاده کنید.
$bucket = "my-gcs-bucket"
New-GcsBucket $bucket
فایلها را در سطل بارگذاری کنید
شما میتوانید New-GcsObject برای آپلود فایل یا کل پوشهها به سطل استفاده کنید.
شما میتوانید با استفاده از پارامتر -File و مشخص کردن مسیر فایل، محتویات یک فایل محلی را در فضای ذخیرهسازی ابری آپلود کنید. همچنین میتوانید محتویات شیء را به صورت رشته از طریق PowerShell pipeline ارسال کنید، یا میتوانید از پارامتر -Value استفاده کنید.
یک فایل محلی روی دستگاه خود انتخاب کنید و به روش زیر در باکت خود آپلود کنید.
New-GcsObject -Bucket "my-gcs-bucket" -File "C:\path\to\some\file\hello.txt"
شما میتوانید با استفاده از پارامتر -UploadFolder و مشخص کردن مسیر پوشه، کل یک دایرکتوری را از دیسک محلی به Cloud Storage آپلود کنید. اگر نمیخواهید پوشه مستقیماً در ریشهی مخزن Cloud Storage آپلود شود، از -ObjectNamePrefix برای تعیین پیشوندی که برای هر شیء آپلود شده اعمال میشود، استفاده کنید.
یک پوشه محلی روی دستگاه خود انتخاب کنید و به روش زیر در باکت خود آپلود کنید.
New-GcsObject -Bucket "my-gcs-bucket" -Folder "C:\path\to\some\folder"
جستجوی دادهها
شما میتوانید دادهها را با cmdletها یا با ارائهدهنده از طریق cmdletهای جستجوی فایل رایج جستجو کنید. دستور زیر را با سطل خود امتحان کنید.
Get-GcsObject $bucket | Select Name, Size | Out-GridView
شما باید یک پنجره پاپآپ شبکهای با نام و اندازه ببینید.

خواندن دادهها
شما میتوانید از دستور Read-GcsObject برای خواندن دادهها استفاده کنید. به عنوان مثال، میتوانید از دستور زیر برای خواندن فایلی به نام hello.txt روی دسکتاپ خود استفاده کنید.
Read-GcsObject $bucket "hello.txt" `
-OutFile "$Env:UserProfile\Desktop\hello.txt"
حذف دادهها
در آخر، میتوانید دادهها را با استفاده از دستور Remove-GcsObject حذف کنید. از دستور زیر برای حذف تمام محتویات سطل استفاده کنید.
Get-GcsObject $bucket | Remove-GcsObject
۸. تبریک میگویم!
در این آزمایشگاه کد، شما یاد گرفتید که چگونه نمونههای موتور محاسباتی (Compute Engine) و سطلهای ذخیرهسازی ابری (Cloud Storage Buckets) را از طریق PowerShell مدیریت کنید، اما چیزهای بیشتری هم وجود دارد! همچنین میتوانید منابع Cloud SQL و Cloud CDN را با استفاده از PowerShell مدیریت کنید. برای کسب اطلاعات بیشتر، لیست مراحل بعدی را در زیر بررسی کنید.
آنچه ما پوشش دادهایم
- نحوه نصب ابزارهای ابری برای پاورشل.
- نحوه احراز هویت با Google Cloud SDK.
- نحوه ایجاد و مدیریت Google Compute Engine از طریق PowerShell.
- نحوه پشتیبان گیری از داده ها در فضای ابری گوگل از طریق پاورشل
مراحل بعدی
- درباره ابزارهای ابری برای PowerShell بیشتر بدانید.
- درباره ویندوز روی پلتفرم ابری گوگل بیشتر بدانید.
- درباره .NET در پلتفرم ابری گوگل بیشتر بدانید.
- درباره SQL Server در پلتفرم ابری گوگل بیشتر بدانید.
- درباره ابزارهای ابری برای ویژوال استودیو بیشتر بدانید.