#AzureAutomation を利用した #SharePointo Online のサイト作成方法

# 初めに
SharePoint Online のサイトを PowerShell を使って払い出そうと考えていたが、Azure Automation を使えばクラウドで完結できる方法があるんじゃないかと思いこの投稿に至る。
今回は、Azure Automation を使って単純に新しいサイトを払い出すまでの手順となる。

- スクリーンショット多めの手順となるため、解説等は省略しています。必要に応じ、加筆します。
- なお、当方は今回 Azure を初めて触りテストしているため、誤った内容があれば指摘頂けると幸いです。

# 参考にしたサイト

[Azure Automation アカウントを作成する](https://docs.microsoft.com/ja-jp/azure/automation/automation-quickstart-create-account)
[Azure Automation Runbook を作成する](https://docs.microsoft.com/ja-jp/azure/automation/automation-quickstart-create-runbook)
[How to use Azure Automation with SharePoint Online – Part One](https://practical365.com/sharepoint-online/how-to-use-azure-automation-with-sharepoint-online-part-one/)
[How to use Azure Automation with SharePoint Online – Part Two](https://practical365.com/sharepoint-online/how-to-azure-automation-to-work-with-sharepoint-online-part-2/)

追記：いろいろ調べてたらすでにブログで記事にされていた方がいらっしゃたため、こちらも参考サイトとして追加します。
[Office 365 の PowerShell 運用を PaaS 化してみる](https://sprestaurant.hatenablog.com/entry/2019/07/07/011839)

# 環境 (2020/1/10 環境の内容が薄かったので更新)
- Office 365 開発者プログラム (SharePoint Online)
- Azure Automation 無料サブスクリプション
- Microsoft.Online.SharePoint.PowerShell 16.0.19515.12000
- SharePointPnPPowerShellOnline 3.16.1912.0 → 参考に書いてます。今回は利用していません。

# 手順
## リソースの作成
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/a441857e-8201-6666-79cb-22b7cbae4c8d.png)

### [管理ツール]→[オートメーション]を選択
![FireShot Capture 008 - 新規 - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/4bce2fb4-a1c3-2411-6628-10847ff923de.png)

### Automation のアカウントを追加
名前は任意でももないなし。
リソースグループに関しては存在しなければ任意の名前で作成すること。
![FireShot Capture 009 - Automation アカウントの追加 - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/5e89f140-39b5-a112-6c98-dd6059afdb75.png)


### Autmation アカウントの選択
[すべてのサービス]を選択

![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/1047bdde-bcf5-f710-d924-23c050a87ab8.png)

[Automation アカウント]を選択
![FireShot Capture 010 - すべてのサービス - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/e0ad3c67-8278-2864-ca4b-827b3da279ae.png)

### 任意で作成したアカウント名を選択
![FireShot Capture 011 - Automation アカウント - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/96e12266-4605-5281-3f77-4321f6f76bb0.png)

## モジュールの追加
[モジュール]を選択
![FireShot Capture 012 - MyAutomation - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/dec867da-a73d-ae60-e7c1-268048340899.png)

### [ギャラリーを参照]を選択
![FireShot Capture 013 - MyAutomation - モジュール - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/c5476a4f-3b27-e038-b1d9-5b14be2e35da.png)

### 「SharePoint」でギャラリーを検索する
ここで必要となるPowerShellを検索し、対象のモジュールをインストールすることになる。
今回は、SPOサイトを作る「だけ」であるため、Microsoft.Online.SharePoint.PowerShell を選択する。
※今回、PnPのモジュールは無視で可

![FireShot Capture 014 - ギャラリーの閲覧 - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/bc2de83d-9f03-243c-ab40-ca41aebd2510.png)

### [インポート]を選択する
![FireShot Capture 015 - Microsoft.Online.SharePoint.PowerShell - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/060d748d-d521-5840-30dd-c886af4bee01.png)

### インポートが完了すると対象のモジュールが「使用可能」となる
※今回、PnPのモジュールは無視で可
![FireShot Capture 016 - MyAutomation - モジュール - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/f5305f5c-ff80-e66f-43a8-b7d5fa2f0923.png)

### [資格情報の追加]を選択する
![FireShot Capture 017 - MyAutomation - 資格情報 - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/c94f6380-4dac-0906-4778-0783c0c2f1a3.png)

### SharePoint の管理者などのロールが割り当てられている資格情報を入力し、[作成]を選択
※ [名前]は任意で可
![FireShot Capture 018 - 新しい資格情報 - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/cfc91c83-7cb6-1f11-1427-8393ef9dbdc9.png)

## Runbook の作成
[Runbook の作成]を選択
![FireShot Capture 019 - MyAutomation - Runbook - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/9b2253ae-059c-7fc1-473f-9d74ff2e3b0a.png)

[名前]は任意、[Runbookの種類]は「PowerShell」を選択→[作成]を選択
![FireShot Capture 020 - Runbook の作成 - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/4b15c176-6400-da24-ad0c-41f5d6ea9e5c.png)

### [編集]を選択
![FireShot Capture 021 - NewSPOSite (MyAutomation_NewSPOSite) - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/5d0e8f5b-aa9f-a575-81be-a077cbeb9b37.png)

### 以下のコマンドを記載
ポイント：事前に作成した資格情報（o365connection）を設定する

```PowerShell:NewSPOSite
# Credentials
$myCred = Get-AutomationPSCredential -Name 'o365connection'
Connect-SPOService -Url https://tenant-admin.sharepoint.com -credential $myCred
New-SPOSite -Url https://tenant.sharepoint.com/sites/AutoNewSPOsite -Owner username@tenant.onmicrosoft.com -StorageQuota 1000 -Title "new site(AzureAutomation!!!!)"
```
## Runbook のテスト
### [保存]→[テスト ウィンドウ]を選択
![FireShot Capture 023 - PowerShell Runbook の編集 - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/f6c68857-b792-5f8c-088d-680d3cc0315f.png)

### [開始]を選択
![FireShot Capture 022 - テスト - Microsoft Azure - portal.azure.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/38c38b9b-abbe-581c-19ce-3fc9098015e6.png)

### 正常にサイトが作成されたのかの確認を行う
以下は SPO 管理者サイトより、Power Automation で払い出したサイトの一覧を確認

![０１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438156/fd2838ca-17d1-2671-a564-26ff578c0824.png)