O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Azureのざっくり利用料金を
毎日Slackに通知する
第15回 Tokyo Jazug Night
2018/12/06
Shingo Kawahara
自己紹介
• 河原慎吾
• 株式会社セゾン情報システムズ
• クラウド/インフラ/コンテナ担当
• 経歴
• VMwareベースの自社クラウド構築/運営
⇓⇓⇓
• パブリッククラウド活用推進
Azureで利用料金を取ってくる方法
Azure REST API
課金関連API 3つ
Azure Invoice Download API
• 有効期限1時間のBLOB SAS URIをJSONで返す
{
"id": "/subscriptions/xxxxxx/providers/Microsoft.Billing/invoi...
Azure Resource Usage API
• 各リソースの使用量をJSONで返す
{
"value": [
{
"id": "/subscriptions/xxxxx/providers/Microsoft.Commerce/Usage...
Azure Resource Usage API
• ある程度の行数になると、nextLinkにURLが入ってJSONが終わる
• このURLをREST APIでGETして、続きのJSONを入手していく
・・・・・略・・・・・
"meterId...
Azure Resource RateCard API
• Azure全リージョン、全リソースの料金表をJSONで返す
{
"OfferTerms": [],
"Meters": [
{
"EffectiveDate": "2018-01-01...
では、どうやって
課金額を算出する??
消費量と料金表の突合
• データ消費量と料金表を突合し、ひたすら掛け算しまくる!
{
"EffectiveDate": "2018-01-01T00:00:00Z",
"IncludedQuantity": 0,
"MeterCategory"...
イメージ
課金額Get
Slack通知
Automation
Functions
注意点
• 使用量に応じてレートが変わる系のサービスは対応するのが辛すぎたので、一番高いや
つで計算
{
"EffectiveDate": "2018-01-01T00:00:00Z",
"IncludedQuantity": 0,
"Mete...
注意点
• 従量課金プランを対象としています。EAだとAPI違うっぽいですが試してません
• 請求書の金額とピッタリには合わないので、あくまでも目安として使ってください
公開
• 実装手順
• https://qiita.com/shingo_kawahara/items/cc5f41c1cdab5f89747d
• コード
• https://github.com/shingo-kawahara/Azure-...
Próximos SlideShares
Carregando em…5
×

de

Azureのざっくり利用料金を毎日Slackに通知する Slide 1 Azureのざっくり利用料金を毎日Slackに通知する Slide 2 Azureのざっくり利用料金を毎日Slackに通知する Slide 3 Azureのざっくり利用料金を毎日Slackに通知する Slide 4 Azureのざっくり利用料金を毎日Slackに通知する Slide 5 Azureのざっくり利用料金を毎日Slackに通知する Slide 6 Azureのざっくり利用料金を毎日Slackに通知する Slide 7 Azureのざっくり利用料金を毎日Slackに通知する Slide 8 Azureのざっくり利用料金を毎日Slackに通知する Slide 9 Azureのざっくり利用料金を毎日Slackに通知する Slide 10 Azureのざっくり利用料金を毎日Slackに通知する Slide 11 Azureのざっくり利用料金を毎日Slackに通知する Slide 12 Azureのざっくり利用料金を毎日Slackに通知する Slide 13 Azureのざっくり利用料金を毎日Slackに通知する Slide 14
Próximos SlideShares
What to Upload to SlideShare
Avançar
Transfira para ler offline e ver em ecrã inteiro.

2 gostaram

Compartilhar

Baixar para ler offline

Azureのざっくり利用料金を毎日Slackに通知する

Baixar para ler offline

2018/12/06 第15回Tokyo Jazug NightでLTさせて頂いた資料です。
Functions(Java)とAzure Automationを組み合わせて、Azure利用料金をSlackに通知します。

Azureのざっくり利用料金を毎日Slackに通知する

  1. 1. Azureのざっくり利用料金を 毎日Slackに通知する 第15回 Tokyo Jazug Night 2018/12/06 Shingo Kawahara
  2. 2. 自己紹介 • 河原慎吾 • 株式会社セゾン情報システムズ • クラウド/インフラ/コンテナ担当 • 経歴 • VMwareベースの自社クラウド構築/運営 ⇓⇓⇓ • パブリッククラウド活用推進
  3. 3. Azureで利用料金を取ってくる方法 Azure REST API
  4. 4. 課金関連API 3つ
  5. 5. Azure Invoice Download API • 有効期限1時間のBLOB SAS URIをJSONで返す { "id": "/subscriptions/xxxxxx/providers/Microsoft.Billing/invoices/201812-12345", "type": "Microsoft.Billing/invoices", "name": " 201812-12345 ", "properties": { "downloadUrl": { "expiryTime": "2018-12-03T11:02:04Z", "url": "https://billinginsightsstore04.blob.core.windows.net/invoices/xxxxx.pdf?sv=2014-02-14&sr=b&sig=RuL% xxxxx%xx%3D&se=2018-12-03T11%3A02%3A04Z&sp=r" }, "invoicePeriodEndDate": "2018-11-01", "invoicePeriodStartDate": "2018-10-02", "billingPeriodIds": [ "/subscriptions/xxxxx/providers/Microsoft.Billing/billingPeriods/201812-1" ] } }
  6. 6. Azure Resource Usage API • 各リソースの使用量をJSONで返す { "value": [ { "id": "/subscriptions/xxxxx/providers/Microsoft.Commerce/UsageAggregates/Daily_BRSDT_20180901_0000", "name": "Daily_BRSDT_20180901_0000", "type": "Microsoft.Commerce/UsageAggregate", "properties": { "subscriptionId": “xxxxx", "usageStartTime": "2018-09-03T00:00:00+00:00", "usageEndTime": "2018-09-04T00:00:00+00:00", "meterName": "Pay-as-you-go Data at Rest", "meterCategory": "Data Lake Store", "unit": "1 GB/Month", "instanceData": "{"Microsoft.Resources":{"resourceUri":"/subscriptions/xxxxx/resourceGroups/testadl/providers/ Microsoft.DataLakeStore/accounts/testadl","location":"eastus2"}}", "meterId": "c7929966-0a48-4f73-a86b-30f4e39d1995", "infoFields": {}, "quantity": 0.011361 } }, ・・・・・略・・・・・ データ消費量 リソース種別 この例だと、Data Lake Store を指す
  7. 7. Azure Resource Usage API • ある程度の行数になると、nextLinkにURLが入ってJSONが終わる • このURLをREST APIでGETして、続きのJSONを入手していく ・・・・・略・・・・・ "meterId": "3f2b1e1c-c886-4ec6-ad6f-dd0ef38819c9", "infoFields": {}, "quantity": 7.2e-05 } } ], "nextLink": "https://management.azure.com:443/subscriptions/xxxxx/providers/Microsoft.Commerce/UsageAggregates? api-version=2015-06-01-preview&reportedStartTime=2018-09-01&reportedEndTime=2018-10-01&showDetails=f&continuationToken=token%3d%3d" }
  8. 8. Azure Resource RateCard API • Azure全リージョン、全リソースの料金表をJSONで返す { "OfferTerms": [], "Meters": [ { "EffectiveDate": "2018-01-01T00:00:00Z", "IncludedQuantity": 0, "MeterCategory": "Virtual Machines", "MeterId": "d0bf9053-17c4-4fec-8502-4eb8376343a7", "MeterName": "F2/F2s 低優先度", "MeterRates": { "0": 8.624 }, "MeterRegion": "米国西部 2", "MeterStatus": "Active", "MeterSubCategory": "F/FS シリーズ Windows", "MeterTags": [], "Unit": "1 時間" }, ・・・・・略・・・・・ 料金計算ツール
  9. 9. では、どうやって 課金額を算出する??
  10. 10. 消費量と料金表の突合 • データ消費量と料金表を突合し、ひたすら掛け算しまくる! { "EffectiveDate": "2018-01-01T00:00:00Z", "IncludedQuantity": 0, "MeterCategory": "Virtual Machines", "MeterId": "53a0922e-fb31-452c-937f-eddb28332602", "MeterName": "A1", "MeterRates": { "0": 3.584 }, "MeterRegion": "東日本", "MeterStatus": "Active", "MeterSubCategory": "A シリーズ Basic", "MeterTags": [], "Unit": "1 時間" } { "id": "/subscriptions/xxxxx/providers/Microsoft.Commerce /UsageAggregates/Daily_BRSDT_20180901_0000", "name": "Daily_BRSDT_20180901_0000", "type": "Microsoft.Commerce/UsageAggregate", "properties": { "subscriptionId": “xxxxx", "usageStartTime": "2018-09-05T00:00:00+00:00", "usageEndTime": "2018-09-06T00:00:00+00:00", "meterName": "A1", "meterRegion": "JA East", "meterCategory": "Virtual Machines", "meterSubCategory": "A Series Basic", "unit": "1 Hour", "instanceData": "{"Microsoft.Resources":{"resourceUri":"/subscriptions/xxxxx/ resourceGroups/testgrp/providers/Microsoft.Compute/virtualMachines/ "meterId": "53a0922e-fb31-452c-937f-eddb28332602", "infoFields": {}, "quantity": 24 } RateCard APIResource Usage API データ消費量 1時間当りの利用料金
  11. 11. イメージ 課金額Get Slack通知 Automation Functions
  12. 12. 注意点 • 使用量に応じてレートが変わる系のサービスは対応するのが辛すぎたので、一番高いや つで計算 { "EffectiveDate": "2018-01-01T00:00:00Z", "IncludedQuantity": 0, "MeterCategory": "Data Lake Store", "MeterId": "c7929966-0a48-4f73-a86b-30f4e39d1995", "MeterName": "従量課金制保存データ", "MeterRates": { "0": 4.368, "102400": 4.256, "1024000": 4.144, "5120000": 4.032 }, "MeterRegion": "", "MeterStatus": "Active", "MeterSubCategory": "", "MeterTags": [], "Unit": "1 GB/月" }
  13. 13. 注意点 • 従量課金プランを対象としています。EAだとAPI違うっぽいですが試してません • 請求書の金額とピッタリには合わないので、あくまでも目安として使ってください
  14. 14. 公開 • 実装手順 • https://qiita.com/shingo_kawahara/items/cc5f41c1cdab5f89747d • コード • https://github.com/shingo-kawahara/Azure-Billing-Api-Sample
  • TaekoHayashi

    Sep. 27, 2020
  • matkjin

    Dec. 8, 2018

2018/12/06 第15回Tokyo Jazug NightでLTさせて頂いた資料です。 Functions(Java)とAzure Automationを組み合わせて、Azure利用料金をSlackに通知します。

Vistos

Vistos totais

1.108

No Slideshare

0

De incorporações

0

Número de incorporações

156

Ações

Baixados

18

Compartilhados

0

Comentários

0

Curtir

2

×