إدارة 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.