איך להוריד נתוני חיוב מ-Azure בעזרת Invoice API

שלום לכולם,

במאמר זה אני רוצה להראות איך אפשר להוריד נתוני צריכה מ-Azure לפי חודשים בצורה אוטומטית וללא צורך במתן הרשאות חזקות.
ב-25 לאפריל מיקרוסופט שיחררה אפשרות חדשה שמאפשרת לתת למשתמשים מסויימים בארגון יכולת לקרוא ולקבל נתוני צריכה מ-Azure מבלי להיות Administrator.
אפשרות זו אפשרה לתת לאנשי הכספים ו/או בעלי תפקידים את היכולת לראות את החיובים ללא צורך שאנשי ה-IT יתנו להם הרשאות דבר שכמובן מוריד את הסיכונים ומאפשר להגביל את המשתמשים בפעולות בחשבון.
כחלק מיכולות ה-(Role Base Access Control (RBAC התווסף לנו Role חדש בשם Biiling Reader שכשמו כן הוא, מאפשר קריאה בלבד לחיובים ב-Azure.

במאמר זה אראה לכם כיצד מפעילים את היכולת ובנוסף אראה איך בעזרת סקריפט ניתן לעבוד מול Invoice API ב- PowerShell ולהוריד בצורה אוטומטית את כל החשבוניות (נכון לכתיבת המאמר Invoice API ב-Public Preview).

תזכורת – במאמרים הקודמים דיברתי על יכולות Azure Role Base Access Control ואיך לבנות Role מותאם אישית.
להלן לינקים למאמרים הקודמים:

הפעלת היכולת לצפייה/הורדת חשבוניות

נכנסים לפורטל Azure עם הרשאות אדמין, לוחצים על Subscriptions ובוחרים את ה-Subscription הרצוי.

Billing-01

בוחרים באפשרות Invoices

Billing-02

לוחצים עם Access to Invoice ומפעילים את האפשרות להורדת חשבוניות.

Billing-03

הערה: רק משתמשים בעלי הרשאות Owner, Contributer, Reader, User Access Administrator, Co-Administrator, Service Administrator ו-Billing Reader יכולים להוריד חשבוניות.

סקריפט להורדת חשבוניות בצורה אוטומטית

הסקריפט מאפשר להוריד ולשמור את כל החשבוניות של ה-Subscription כ-PDF לתיקייה ספציפית.
יש להשלים את הפרמטרים הבאים:

  • ה-Subscription ID הרצוי.
  • הנתיב לשמירת החשבוניות.
$subscriptionId = Read-Host 'Specify your Azure Subscription ID?';
$downloadDirectory = Read-Host 'Specify your download location (For Example:C:\Invoices)?'
 
Login-AzureRmAccount
$SubscriptionName = (Get-AzureRmSubscription -SubscriptionId:$subscriptionId).Name
if ($SubscriptionName) {
    Set-AzureRmContext -SubscriptionId $subscriptionId
    $invoices = Get-AzureRmBillingInvoice -GenerateDownloadUrl
    foreach($invoice in $invoices)
    {
        Invoke-WebRequest -Uri $invoice.DownloadUrl -OutFile ($downloadDirectory + '\' +  $SubscriptionNane + "-" + $invoice.InvoicePeriodStartDate.ToString("dd/MM/yyyy").Replace("/","") + "-" + $invoice.InvoicePeriodEndDate.ToString("dd/MM/yyyy").Replace("/","") + '.pdf');
    }
}
ניתן להוריד את הסקריפט בלינק הבא: Azure Invoice Script.

תהנו 🙂

Be the first to comment

Leave a Reply

כתובת האימייל שלך לא תפורסם


*