إدارة Azure CDN باستخدام PowerShell
يوفر PowerShell واحدة من أكثر الطرق مرونة لإدارة ملفات تعريف Azure CDN ونقاط النهاية. يمكنك استخدام PowerShell بشكل تفاعلي أو عن طريق كتابة البرامج النصية لأتمتة مهام الإدارة. يوضح هذا البرنامج التعليمي العديد من المهام الأكثر شيوعا التي يمكنك إنجازها باستخدام PowerShell لإدارة ملفات تعريف Azure CDN ونقاط النهاية.
المتطلبات الأساسية
ملاحظة
تستخدم هذه المقالة الوحدة النمطية Azure Az PowerShell، وهي الوحدة النمطية PowerShell الموصى بها للتفاعل مع Azure. لبدء استخدام الوحدة النمطية Az PowerShell، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
لاستخدام PowerShell لإدارة ملفات تعريف Azure CDN ونقاط النهاية، يجب أن يكون لديك وحدة Azure PowerShell النمطية مثبتة. لمعرفة كيفية تثبيت Azure PowerShell والاتصال ب Azure باستخدام Connect-AzAccount cmdlet، راجع كيفية تثبيت Azure PowerShell وتكوينه.
هام
يجب عليك تسجيل الدخول Connect-AzAccount قبل أن تتمكن من تنفيذ cmdlets Azure PowerShell.
إدراج Azure CDN cmdlets
يمكنك سرد كافة cmdlets Azure CDN باستخدام Get-Command cmdlet.
PS C:\> Get-Command -Module Az.Cdn
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Confirm-AzCdnEndpointProbeURL 1.4.0 Az.Cdn
Cmdlet Disable-AzCdnCustomDomain 1.4.0 Az.Cdn
Cmdlet Disable-AzCdnCustomDomainHttps 1.4.0 Az.Cdn
Cmdlet Enable-AzCdnCustomDomain 1.4.0 Az.Cdn
Cmdlet Enable-AzCdnCustomDomainHttps 1.4.0 Az.Cdn
Cmdlet Get-AzCdnCustomDomain 1.4.0 Az.Cdn
Cmdlet Get-AzCdnEdgeNode 1.4.0 Az.Cdn
Cmdlet Get-AzCdnEndpoint 1.4.0 Az.Cdn
Cmdlet Get-AzCdnEndpointNameAvailability 1.4.0 Az.Cdn
Cmdlet Get-AzCdnEndpointResourceUsage 1.4.0 Az.Cdn
Cmdlet Get-AzCdnOrigin 1.4.0 Az.Cdn
Cmdlet Get-AzCdnProfile 1.4.0 Az.Cdn
Cmdlet Get-AzCdnProfileResourceUsage 1.4.0 Az.Cdn
Cmdlet Get-AzCdnProfileSsoUrl 1.4.0 Az.Cdn
Cmdlet Get-AzCdnProfileSupportedOptimizationType 1.4.0 Az.Cdn
Cmdlet Get-AzCdnSubscriptionResourceUsage 1.4.0 Az.Cdn
Cmdlet New-AzCdnCustomDomain 1.4.0 Az.Cdn
Cmdlet New-AzCdnDeliveryPolicy 1.4.0 Az.Cdn
Cmdlet New-AzCdnDeliveryRule 1.4.0 Az.Cdn
Cmdlet New-AzCdnDeliveryRuleAction 1.4.0 Az.Cdn
Cmdlet New-AzCdnDeliveryRuleCondition 1.4.0 Az.Cdn
Cmdlet New-AzCdnEndpoint 1.4.0 Az.Cdn
Cmdlet New-AzCdnProfile 1.4.0 Az.Cdn
Cmdlet Publish-AzCdnEndpointContent 1.4.0 Az.Cdn
Cmdlet Remove-AzCdnCustomDomain 1.4.0 Az.Cdn
Cmdlet Remove-AzCdnEndpoint 1.4.0 Az.Cdn
Cmdlet Remove-AzCdnProfile 1.4.0 Az.Cdn
Cmdlet Set-AzCdnEndpoint 1.4.0 Az.Cdn
Cmdlet Set-AzCdnOrigin 1.4.0 Az.Cdn
Cmdlet Set-AzCdnProfile 1.4.0 Az.Cdn
Cmdlet Start-AzCdnEndpoint 1.4.0 Az.Cdn
Cmdlet Stop-AzCdnEndpoint 1.4.0 Az.Cdn
Cmdlet Test-AzCdnCustomDomain 1.4.0 Az.Cdn
Cmdlet Unpublish-AzCdnEndpointContent 1.4.0 Az.Cdn
الحصول على المساعدة
يمكنك الحصول على مساعدة بشأن أي من هذه ال cmdlets باستخدام Get-Help cmdlet. Get-Help يوفر الاستخدام وبناء الجملة، ويعرض الأمثلة اختياريا.
PS C:\> Get-Help Get-AzCdnProfile
NAME
Get-AzCdnProfile
SYNOPSIS
Gets an Azure CDN profile.
SYNTAX
Get-AzCdnProfile [-ProfileName <String>] [-ResourceGroupName <String>] [-InformationAction
<ActionPreference>] [-InformationVariable <String>] [<CommonParameters>]
DESCRIPTION
Gets an Azure CDN profile and all related information.
RELATED LINKS
REMARKS
To see the examples, type: "get-help Get-AzCdnProfile -examples".
For more information, type: "get-help Get-AzCdnProfile -detailed".
For technical information, type: "get-help Get-AzCdnProfile -full".
إدراج ملفات تعريف Azure CDN الحالية
يقوم Get-AzCdnProfile cmdlet بدون أي معلمات باسترداد جميع ملفات تعريف CDN الموجودة لديك.
Get-AzCdnProfile
يمكن توصيل هذا الإخراج إلى cmdlets للتعداد.
# Output the name of all profiles on this subscription.
Get-AzCdnProfile | ForEach-Object { Write-Host $_.Name }
# Return only **Azure CDN from Verizon** profiles.
Get-AzCdnProfile | Where-Object { $_.Sku.Name -eq "Standard_Verizon" }
يمكنك أيضا إرجاع ملف تعريف واحد عن طريق تحديد اسم ملف التعريف ومجموعة الموارد.
Get-AzCdnProfile -ProfileName CdnDemo -ResourceGroupName CdnDemoRG
تلميح
من الممكن أن يكون لديك ملفات تعريف CDN متعددة بنفس الاسم ، طالما أنها في مجموعات موارد مختلفة. يؤدي حذف المعلمة إلى ResourceGroupName إرجاع جميع ملفات التعريف ذات الاسم المطابق.
إدراج نقاط نهاية CDN الحالية
Get-AzCdnEndpoint يمكن استرداد نقطة نهاية فردية أو جميع نقاط النهاية على ملف تعريف.
# Get a single endpoint.
Get-AzCdnEndpoint -ProfileName CdnDemo -ResourceGroupName CdnDemoRG -EndpointName cdndocdemo
# Get all of the endpoints on a given profile.
Get-AzCdnEndpoint -ProfileName CdnDemo -ResourceGroupName CdnDemoRG
# Return all of the endpoints on all of the profiles.
Get-AzCdnProfile | Get-AzCdnEndpoint
# Return all of the endpoints in this subscription that are currently running.
Get-AzCdnProfile | Get-AzCdnEndpoint | Where-Object { $_.ResourceState -eq "Running" }
إنشاء ملفات تعريف CDN ونقاط النهاية
New-AzCdnProfile وتستخدم New-AzCdnEndpoint لإنشاء ملفات تعريف CDN ونقاط النهاية. يتم دعم وحدات SKU التالية:
- Standard_Verizon
- Premium_Verizon
- Custom_Verizon
- Standard_Akamai
- Standard_Microsoft
- Standard_ChinaCdn
# Create a new profile
New-AzCdnProfile -ProfileName CdnPoshDemo -ResourceGroupName CdnDemoRG -Sku Standard_Akamai -Location "Central US"
# Create a new endpoint
New-AzCdnEndpoint -ProfileName CdnPoshDemo -ResourceGroupName CdnDemoRG -Location "Central US" -EndpointName cdnposhdoc -OriginName "Contoso" -OriginHostName "www.contoso.com"
# Create a new profile and endpoint (same as above) in one line
New-AzCdnProfile -ProfileName CdnPoshDemo -ResourceGroupName CdnDemoRG -Sku Standard_Akamai -Location "Central US" | New-AzCdnEndpoint -EndpointName cdnposhdoc -OriginName "Contoso" -OriginHostName "www.contoso.com"
التحقق من توفر اسم نقطة النهاية
Get-AzCdnEndpointNameAvailability ترجع هذه الدالة كائنا يشير إلى ما إذا كان اسم نقطة النهاية متوفرا.
# Retrieve availability
$availability = Get-AzCdnEndpointNameAvailability -EndpointName "cdnposhdoc"
# If available, write a message to the console.
If($availability.NameAvailable) { Write-Host "Yes, that endpoint name is available." }
Else { Write-Host "No, that endpoint name is not available." }
إضافة مجال مخصص
New-AzCdnCustomDomain إضافة اسم مجال مخصص إلى نقطة نهاية موجودة.
هام
يجب إعداد CNAME مع موفر DNS كما هو موضح في كيفية تعيين المجال المخصص إلى نقطة نهاية شبكة تسليم المحتوى (CDN). يمكنك اختبار التعيين قبل تعديل نقطة النهاية باستخدام Test-AzCdnCustomDomain.
# Get an existing endpoint
$endpoint = Get-AzCdnEndpoint -ProfileName CdnPoshDemo -ResourceGroupName CdnDemoRG -EndpointName cdnposhdoc
# Check the mapping
$result = Test-AzCdnCustomDomain -CdnEndpoint $endpoint -CustomDomainHostName "cdn.contoso.com"
# Create the custom domain on the endpoint
If($result.CustomDomainValidated){ New-AzCdnCustomDomain -CustomDomainName Contoso -HostName "cdn.contoso.com" -CdnEndpoint $endpoint }
تعديل نقطة نهاية
Set-AzCdnEndpoint يعدل نقطة نهاية موجودة.
# Get an existing endpoint
$endpoint = Get-AzCdnEndpoint -ProfileName CdnPoshDemo -ResourceGroupName CdnDemoRG -EndpointName cdnposhdoc
# Set up content compression
$endpoint.IsCompressionEnabled = $true
$endpoint.ContentTypesToCompress = "text/javascript","text/css","application/json"
# Save the changed endpoint and apply the changes
Set-AzCdnEndpoint -CdnEndpoint $endpoint
تطهير / تحميل مسبق لأصول CDN
Unpublish-AzCdnEndpointContent إزالة الأصول المخزنة مؤقتا، بينما Publish-AzCdnEndpointContent يقوم بتحميل الأصول مسبقا على نقاط النهاية المدعومة.
# Purge some assets.
Unpublish-AzCdnEndpointContent -ProfileName CdnDemo -ResourceGroupName CdnDemoRG -EndpointName cdndocdemo -PurgeContent "/images/kitten.png","/video/rickroll.mp4"
# Pre-load some assets.
Publish-AzCdnEndpointContent -ProfileName CdnDemo -ResourceGroupName CdnDemoRG -EndpointName cdndocdemo -LoadContent "/images/kitten.png","/video/rickroll.mp4"
# Purge everything in /images/ on all endpoints.
Get-AzCdnProfile | Get-AzCdnEndpoint | Unpublish-AzCdnEndpointContent -PurgeContent "/images/*"
بدء / إيقاف نقاط نهاية CDN
Start-AzCdnEndpointStop-AzCdnEndpoint ويمكن استخدامها لبدء وإيقاف نقاط النهاية الفردية أو مجموعات نقاط النهاية.
# Stop the cdndocdemo endpoint
Stop-AzCdnEndpoint -ProfileName CdnDemo -ResourceGroupName CdnDemoRG -EndpointName cdndocdemo
# Stop all endpoints
Get-AzCdnProfile | Get-AzCdnEndpoint | Stop-AzCdnEndpoint
# Start all endpoints
Get-AzCdnProfile | Get-AzCdnEndpoint | Start-AzCdnEndpoint
إنشاء نهج محرك القواعد الموحدة وتطبيقه على نقطة نهاية CDN موجودة
New-AzCdnDeliveryRule، New=AzCdnDeliveryRuleConditionNew-AzCdnDeliveryRuleAction ويمكن استخدامه لتكوين مشغل قواعد Azure CDN القياسية على Azure CDN من ملفات تعريف Microsoft.
# Create a new http to https redirect rule
$Condition=New-AzCdnDeliveryRuleCondition -MatchVariable RequestProtocol -Operator Equal -MatchValue HTTP
$Action=New-AzCdnDeliveryRuleAction -RedirectType Found -DestinationProtocol HTTPS
$HttpToHttpsRedirectRule=New-AzCdnDeliveryRule -Name "HttpToHttpsRedirectRule" -Order 2 -Condition $Condition -Action $Action
# Create a path based Response header modification rule.
$Cond1=New-AzCdnDeliveryRuleCondition -MatchVariable UrlPath -Operator BeginsWith -MatchValue "/images/"
$Action1=New-AzCdnDeliveryRuleAction -HeaderActionType ModifyResponseHeader -Action Overwrite -HeaderName "Access-Control-Allow-Origin" -Value "*"
$PathBasedCacheOverrideRule=New-AzCdnDeliveryRule -Name "PathBasedCacheOverride" -Order 1 -Condition $Cond1 -Action $action1
# Create a delivery policy with above deliveryRules.
$Policy = New-AzCdnDeliveryPolicy -Description "DeliveryPolicy" -Rule $HttpToHttpsRedirectRule,$UrlRewriteRule
# Update existing endpoint with created delivery policy
$ep = Get-AzCdnEndpoint -EndpointName cdndocdemo -ProfileName CdnDemo -ResourceGroupName CdnDemoRG
$ep.DeliveryPolicy = $Policy
Set-AzCdnEndpoint -CdnEndpoint $ep
حذف موارد CDN
Remove-AzCdnProfileRemove-AzCdnEndpoint ويمكن استخدامها لإزالة ملفات التعريف ونقاط النهاية.
# Remove a single endpoint
Remove-AzCdnEndpoint -ProfileName CdnPoshDemo -ResourceGroupName CdnDemoRG -EndpointName cdnposhdoc
# Remove all the endpoints on a profile and skip confirmation (-Force)
Get-AzCdnProfile -ProfileName CdnPoshDemo -ResourceGroupName CdnDemoRG | Get-AzCdnEndpoint | Remove-AzCdnEndpoint -Force
# Remove a single profile
Remove-AzCdnProfile -ProfileName CdnPoshDemo -ResourceGroupName CdnDemoRG
الخطوات التالية
تعرف على كيفية أتمتة Azure CDN باستخدام .NET أو Node.js.
للتعرف على ميزات CDN، راجع نظرة عامة على CDN.