SlideShare a Scribd company logo
Azure Functionsで
PowerShellを使ってみた
木村 康宏
@tuba_kim/YasuhiroKimura
2020/12/16
自己紹介(1/2)
名前:木村 康宏
所属:ソフトバンク株式会社
仕事:Azure/CircleCI/Ansibleなど使って、
自社のMSPサービスの運用業務の改善とかやってます
・過去にはOpenStackなど触ってプライベートクラウド作ったりしてました。
・Azureを業務で使い始めたのはここ1年くらい。
自己紹介(2/2)
・Azureを中心にパブリッククラウドの導⼊から
運⽤まで提供するMSPサービスを提供しています。
・MSPサービスの基盤⾃体Azureで動かしています。
Azure FunctionsでPowerShell使ってみる
・MSPサービスを日々運用していく上で発生する業務を自動化したい。
・Azure FunctionsでPowerShellを使って自動化したら嬉しいかもと考えた。
・Azure FunctionsでのPowerShellのサポートが昨年開始。
・PowerShellならAzure PowerShellもあるので捗る。
・ちょっとした業務ならPowerShellで簡単に書いちゃいたい。
ということで使ってみた。
作った構成
①タイマートリガーで起動
②Table Storageの
データを読み込み
③Queue Storageに
メッセージを登録
④メッセージの内容を元に
処理実施
実装していて気づいた点
・良かった点
・Azure PowerShell使えるのが嬉しい。
・簡単な業務を簡単に自動化できるのが嬉しい。
・詰まった点
・マニュアルでPowerShellだけ記載がないことがしばしばある。
・入出力バインドの利用方法とかで、PowerShellだけ記載がなかったりする。
・C#、Javascriptあたりの記載を参考に頑張る。
・Table Storageの読み込み行数の設定(後述)
・Queue Storageを利用した際のコンカレンシーの設定(後述)
Table Storageの読み込みの設定
・事象
・Table Storageから狙ったデータが読めてない。
・原因
・既定の設定だと、Table Storageから読み込むデータの最大行数が50
・function.jsonのtakeという、Table Storageの読み取り行数の設定値があるが、
マニュアルではJavascript用のコンフィグのように書いてある。
・PowerShellでもこの値を参照している。
・対処
・function.jsonのtakeを適切に設定する。
・おかしなことが起きてたら、他のランタイムの設定値も確認してみる。
Queue Storageを利用した際の
コンカレンシーの設定
・事象
・Queue Storageからメッセージを受信して処理する部分で、処理が遅延している。
・原因
・PowerShellは既定では1VM1プロセスしか起動しない。
・一方で、メッセージの受信は既定では1VMで16メッセージ同時に受信する。
・結果として処理遅延が起こっていた。
Queue Storageを利用した際の
コンカレンシーの設定
・対処
・以下の値を適切に設定する。
・アプリ設定の「FUNCTIONS_WORKER_PROCESS_COUNT」
・1VMで起動するプロセス数。
・既定値は1なので、この値を増やして起動するプロセスを増やす。
・host.jsonの extensions queues の「batchSize」
・1VMで同時に処理するメッセージ数。
・既定値を16なので、この値を減らしてバッチサイズを下げる。
まとめ
・詰まった部分はあったけど、結構簡単に便利に使えた。
・これからもどんどん活用していきたい。
・Azure FunctionsでPowerShellのノウハウも蓄積していきたい。

More Related Content

What's hot (20)

クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102
Keiichi Hashimoto
 
Azure使いから見たAWSの良いところ
Azure使いから見たAWSの良いところAzure使いから見たAWSの良いところ
Azure使いから見たAWSの良いところ
Masaki Yamamoto
 
Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
Yui Ashikaga
 
JAWS-UG 初心者支部 #4 東急ハンズのEC2の使いかた
JAWS-UG 初心者支部 #4 東急ハンズのEC2の使いかたJAWS-UG 初心者支部 #4 東急ハンズのEC2の使いかた
JAWS-UG 初心者支部 #4 東急ハンズのEC2の使いかた
Tomoaki Imai
 
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンスCDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
Kuniteru Asami
 
20201216 jazug azureexam
20201216 jazug azureexam20201216 jazug azureexam
20201216 jazug azureexam
TomoakiOno
 
Nested Hyper-v on Azure
Nested Hyper-v on AzureNested Hyper-v on Azure
Nested Hyper-v on Azure
Masahiko Ebisuda
 
JAZUG 4周年総会 「トラブルから学ぶAzure世渡り術」
JAZUG 4周年総会 「トラブルから学ぶAzure世渡り術」JAZUG 4周年総会 「トラブルから学ぶAzure世渡り術」
JAZUG 4周年総会 「トラブルから学ぶAzure世渡り術」
Yui Ashikaga
 
「リザーブドキングスライム」をやっつけて一撃レベルアップ!
「リザーブドキングスライム」をやっつけて一撃レベルアップ!「リザーブドキングスライム」をやっつけて一撃レベルアップ!
「リザーブドキングスライム」をやっつけて一撃レベルアップ!
Tomoya Ishida
 
20140726 jaws-ug chiba AWS operation best practice
20140726 jaws-ug chiba AWS operation best practice20140726 jaws-ug chiba AWS operation best practice
20140726 jaws-ug chiba AWS operation best practice
Kazuki Ueki
 
ベアメタルOpenStackで始めるクラウド環境構築
ベアメタルOpenStackで始めるクラウド環境構築ベアメタルOpenStackで始めるクラウド環境構築
ベアメタルOpenStackで始めるクラウド環境構築
Nobuyuki Tamaoki
 
ACE 第6回定例会 ショートプレゼン
ACE 第6回定例会 ショートプレゼンACE 第6回定例会 ショートプレゼン
ACE 第6回定例会 ショートプレゼン
Yui Ashikaga
 
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
Shingo Kawahara
 
JAWS-UG京王線#1業務で使うAWSCLI
JAWS-UG京王線#1業務で使うAWSCLIJAWS-UG京王線#1業務で使うAWSCLI
JAWS-UG京王線#1業務で使うAWSCLI
Tomoaki Imai
 
OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所
Kuniteru Asami
 
Virtual Machine Scale Sets 概要
Virtual Machine Scale Sets 概要Virtual Machine Scale Sets 概要
Virtual Machine Scale Sets 概要
Yui Ashikaga
 
あのスタートアップもさくら!?さくらのクラウドでサービスローンチしてみよう(スタートアップのサーバーインフラを考えよう!Vol.2)
あのスタートアップもさくら!?さくらのクラウドでサービスローンチしてみよう(スタートアップのサーバーインフラを考えよう!Vol.2)あのスタートアップもさくら!?さくらのクラウドでサービスローンチしてみよう(スタートアップのサーバーインフラを考えよう!Vol.2)
あのスタートアップもさくら!?さくらのクラウドでサービスローンチしてみよう(スタートアップのサーバーインフラを考えよう!Vol.2)
さくらインターネット株式会社
 
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
Typhon 666
 
インフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hubインフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hub
Masahiko Ebisuda
 
「Azure Arc対応データサービス」でどこでもAzureデータサービス実行
「Azure Arc対応データサービス」でどこでもAzureデータサービス実行「Azure Arc対応データサービス」でどこでもAzureデータサービス実行
「Azure Arc対応データサービス」でどこでもAzureデータサービス実行
Masahiko Ebisuda
 
クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102クラウド運用3足の草鞋151102
クラウド運用3足の草鞋151102
Keiichi Hashimoto
 
Azure使いから見たAWSの良いところ
Azure使いから見たAWSの良いところAzure使いから見たAWSの良いところ
Azure使いから見たAWSの良いところ
Masaki Yamamoto
 
Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
Yui Ashikaga
 
JAWS-UG 初心者支部 #4 東急ハンズのEC2の使いかた
JAWS-UG 初心者支部 #4 東急ハンズのEC2の使いかたJAWS-UG 初心者支部 #4 東急ハンズのEC2の使いかた
JAWS-UG 初心者支部 #4 東急ハンズのEC2の使いかた
Tomoaki Imai
 
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンスCDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
Kuniteru Asami
 
20201216 jazug azureexam
20201216 jazug azureexam20201216 jazug azureexam
20201216 jazug azureexam
TomoakiOno
 
JAZUG 4周年総会 「トラブルから学ぶAzure世渡り術」
JAZUG 4周年総会 「トラブルから学ぶAzure世渡り術」JAZUG 4周年総会 「トラブルから学ぶAzure世渡り術」
JAZUG 4周年総会 「トラブルから学ぶAzure世渡り術」
Yui Ashikaga
 
「リザーブドキングスライム」をやっつけて一撃レベルアップ!
「リザーブドキングスライム」をやっつけて一撃レベルアップ!「リザーブドキングスライム」をやっつけて一撃レベルアップ!
「リザーブドキングスライム」をやっつけて一撃レベルアップ!
Tomoya Ishida
 
20140726 jaws-ug chiba AWS operation best practice
20140726 jaws-ug chiba AWS operation best practice20140726 jaws-ug chiba AWS operation best practice
20140726 jaws-ug chiba AWS operation best practice
Kazuki Ueki
 
ベアメタルOpenStackで始めるクラウド環境構築
ベアメタルOpenStackで始めるクラウド環境構築ベアメタルOpenStackで始めるクラウド環境構築
ベアメタルOpenStackで始めるクラウド環境構築
Nobuyuki Tamaoki
 
ACE 第6回定例会 ショートプレゼン
ACE 第6回定例会 ショートプレゼンACE 第6回定例会 ショートプレゼン
ACE 第6回定例会 ショートプレゼン
Yui Ashikaga
 
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
Shingo Kawahara
 
JAWS-UG京王線#1業務で使うAWSCLI
JAWS-UG京王線#1業務で使うAWSCLIJAWS-UG京王線#1業務で使うAWSCLI
JAWS-UG京王線#1業務で使うAWSCLI
Tomoaki Imai
 
OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所
Kuniteru Asami
 
Virtual Machine Scale Sets 概要
Virtual Machine Scale Sets 概要Virtual Machine Scale Sets 概要
Virtual Machine Scale Sets 概要
Yui Ashikaga
 
あのスタートアップもさくら!?さくらのクラウドでサービスローンチしてみよう(スタートアップのサーバーインフラを考えよう!Vol.2)
あのスタートアップもさくら!?さくらのクラウドでサービスローンチしてみよう(スタートアップのサーバーインフラを考えよう!Vol.2)あのスタートアップもさくら!?さくらのクラウドでサービスローンチしてみよう(スタートアップのサーバーインフラを考えよう!Vol.2)
あのスタートアップもさくら!?さくらのクラウドでサービスローンチしてみよう(スタートアップのサーバーインフラを考えよう!Vol.2)
さくらインターネット株式会社
 
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
20210624 Monitoring the AWS Observability Workshop Environment with Datadog O...
Typhon 666
 
インフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hubインフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hub
Masahiko Ebisuda
 
「Azure Arc対応データサービス」でどこでもAzureデータサービス実行
「Azure Arc対応データサービス」でどこでもAzureデータサービス実行「Azure Arc対応データサービス」でどこでもAzureデータサービス実行
「Azure Arc対応データサービス」でどこでもAzureデータサービス実行
Masahiko Ebisuda
 

Similar to Azure FunctionsでPowerShellを使ってみた (20)

Azure Fundamental
Azure FundamentalAzure Fundamental
Azure Fundamental
Yui Ashikaga
 
Azure Machine Learningを触ってみた!
Azure Machine Learningを触ってみた!Azure Machine Learningを触ってみた!
Azure Machine Learningを触ってみた!
Takuya Tachibana
 
Azure MLやってみよう
Azure MLやってみようAzure MLやってみよう
Azure MLやってみよう
A AOKI
 
Azure MLによるWeb Serviceの作り方
Azure MLによるWeb Serviceの作り方Azure MLによるWeb Serviceの作り方
Azure MLによるWeb Serviceの作り方
nishioka1
 
JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏
JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏
JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏
Takashi Someda
 
「Azure durable functions」の概要
「Azure durable functions」の概要「Azure durable functions」の概要
「Azure durable functions」の概要
裕之 木下
 
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Dai Iwai
 
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
Web制作的に便利な機能満載!Microsoft Azureを使ってみようWeb制作的に便利な機能満載!Microsoft Azureを使ってみよう
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
典子 松本
 
Azure express route tips
Azure express route tipsAzure express route tips
Azure express route tips
Takanori Tsuruta
 
20131116_OSC福岡_CloudOS「Apache CloudStack」概要
20131116_OSC福岡_CloudOS「Apache CloudStack」概要20131116_OSC福岡_CloudOS「Apache CloudStack」概要
20131116_OSC福岡_CloudOS「Apache CloudStack」概要
Midori Oge
 
5分では終わりそうにないfunctionsの話
5分では終わりそうにないfunctionsの話5分では終わりそうにないfunctionsの話
5分では終わりそうにないfunctionsの話
Yoshiyuki Taniguchi
 
A/BテストをAzure×Googleアナリティクスで試してみました。
A/BテストをAzure×Googleアナリティクスで試してみました。A/BテストをAzure×Googleアナリティクスで試してみました。
A/BテストをAzure×Googleアナリティクスで試してみました。
典子 松本
 
一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure 活用方法
一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure活用方法一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure活用方法
一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure 活用方法
典子 松本
 
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
Tomotsune Murata
 
Azure activedirectoryの最新機能の概要紹介
Azure activedirectoryの最新機能の概要紹介Azure activedirectoryの最新機能の概要紹介
Azure activedirectoryの最新機能の概要紹介
Tsukasa Kato
 
Cloudpackが実現するビジネス課題の解決と新しい価値の提供
Cloudpackが実現するビジネス課題の解決と新しい価値の提供Cloudpackが実現するビジネス課題の解決と新しい価値の提供
Cloudpackが実現するビジネス課題の解決と新しい価値の提供
Hiroyuki Hiki
 
AngularJS+TypeScriptを試してみた。
AngularJS+TypeScriptを試してみた。AngularJS+TypeScriptを試してみた。
AngularJS+TypeScriptを試してみた。
Toshio Ehara
 
Cloud garage使って ECサイトの構築
Cloud garage使って ECサイトの構築Cloud garage使って ECサイトの構築
Cloud garage使って ECサイトの構築
毅 佐藤
 
関数プロキシを使って REST APIっぽくを使ってみる
関数プロキシを使って REST APIっぽくを使ってみる関数プロキシを使って REST APIっぽくを使ってみる
関数プロキシを使って REST APIっぽくを使ってみる
Noriaki Sakata
 
Devsum ikansai 2015 「innovation eggって何?」
Devsum ikansai 2015 「innovation eggって何?」Devsum ikansai 2015 「innovation eggって何?」
Devsum ikansai 2015 「innovation eggって何?」
Hiroyuki Hiki
 
Azure Machine Learningを触ってみた!
Azure Machine Learningを触ってみた!Azure Machine Learningを触ってみた!
Azure Machine Learningを触ってみた!
Takuya Tachibana
 
Azure MLやってみよう
Azure MLやってみようAzure MLやってみよう
Azure MLやってみよう
A AOKI
 
Azure MLによるWeb Serviceの作り方
Azure MLによるWeb Serviceの作り方Azure MLによるWeb Serviceの作り方
Azure MLによるWeb Serviceの作り方
nishioka1
 
JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏
JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏
JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏
Takashi Someda
 
「Azure durable functions」の概要
「Azure durable functions」の概要「Azure durable functions」の概要
「Azure durable functions」の概要
裕之 木下
 
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Dai Iwai
 
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
Web制作的に便利な機能満載!Microsoft Azureを使ってみようWeb制作的に便利な機能満載!Microsoft Azureを使ってみよう
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
典子 松本
 
20131116_OSC福岡_CloudOS「Apache CloudStack」概要
20131116_OSC福岡_CloudOS「Apache CloudStack」概要20131116_OSC福岡_CloudOS「Apache CloudStack」概要
20131116_OSC福岡_CloudOS「Apache CloudStack」概要
Midori Oge
 
5分では終わりそうにないfunctionsの話
5分では終わりそうにないfunctionsの話5分では終わりそうにないfunctionsの話
5分では終わりそうにないfunctionsの話
Yoshiyuki Taniguchi
 
A/BテストをAzure×Googleアナリティクスで試してみました。
A/BテストをAzure×Googleアナリティクスで試してみました。A/BテストをAzure×Googleアナリティクスで試してみました。
A/BテストをAzure×Googleアナリティクスで試してみました。
典子 松本
 
一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure 活用方法
一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure活用方法一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure活用方法
一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure 活用方法
典子 松本
 
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
Tomotsune Murata
 
Azure activedirectoryの最新機能の概要紹介
Azure activedirectoryの最新機能の概要紹介Azure activedirectoryの最新機能の概要紹介
Azure activedirectoryの最新機能の概要紹介
Tsukasa Kato
 
Cloudpackが実現するビジネス課題の解決と新しい価値の提供
Cloudpackが実現するビジネス課題の解決と新しい価値の提供Cloudpackが実現するビジネス課題の解決と新しい価値の提供
Cloudpackが実現するビジネス課題の解決と新しい価値の提供
Hiroyuki Hiki
 
AngularJS+TypeScriptを試してみた。
AngularJS+TypeScriptを試してみた。AngularJS+TypeScriptを試してみた。
AngularJS+TypeScriptを試してみた。
Toshio Ehara
 
Cloud garage使って ECサイトの構築
Cloud garage使って ECサイトの構築Cloud garage使って ECサイトの構築
Cloud garage使って ECサイトの構築
毅 佐藤
 
関数プロキシを使って REST APIっぽくを使ってみる
関数プロキシを使って REST APIっぽくを使ってみる関数プロキシを使って REST APIっぽくを使ってみる
関数プロキシを使って REST APIっぽくを使ってみる
Noriaki Sakata
 
Devsum ikansai 2015 「innovation eggって何?」
Devsum ikansai 2015 「innovation eggって何?」Devsum ikansai 2015 「innovation eggって何?」
Devsum ikansai 2015 「innovation eggって何?」
Hiroyuki Hiki
 
Ad

Azure FunctionsでPowerShellを使ってみた