[Azure]WebJobsのPJを作成してAzureでWebJobsを実行する

:::note alert
今回はWebJobs用のPJを作成してAzureのインスタンスにアップしWebJobsを実行する流れを説明します。AzureのApp Serviceのインスタンスを使用するため費用が発生する場合がありますので自己責任で設定してください
:::

# 開発環境
Microsoft Visual Studio 2022 Version 17.10.4
Microsoft .NET Framework Version 4.8.09032

# WebJobsのPJを作成
### Visual Studio 2022 を起動して、新しいプロジェクトを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/d97db941-f12c-824e-a981-380857d75ead.png)

### 「webjobs」で検索し、C#の方を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/78ef63f6-2046-8207-a70d-2fd0f73570a6.png)

### 名前を付けて作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/c8a97f69-f556-cea0-abb0-18d33787b9cd.png)

# Projram.csを修正
今回は実行できることを確認するだけなので、ログ出力するだけの処理を記述
```
using System;
using System.Threading.Tasks;

namespace AzureWebJobTest
{
    internal class Program
    {
        public static async Task Main(string[] args)
        {
            Console.WriteLine($"[console]" + DateTime.Now.ToString());
        }
    }
}

```

# Azureにアップロードする
### プロジェクトを選択して「発行」ボタンクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/ed7d50fb-547b-2749-dbec-00d821ca297f.png)
### Azureを選択して「次へ」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/30d491db-e183-9180-3da6-cf1ca827e9f1.png)
### Azure WebJobsを選択して、「次へ」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/1e6790b4-c3e8-c77e-3b3f-f83d49641d1d.png)

### 既にあるインスタンスを選択して「完了」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/6d369e98-ca32-a2f1-690c-5802e2dd5ba1.png)


### 「発行」ボタンをクリックしてアップロードする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/5af109cc-7a30-33d2-48ab-19d3e1be3f7b.png)


# Azure上でWebJobsを実行
### 「設定」-「Webジョブ」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/3e108461-ffa4-f072-9023-2f3940f71f61.png)

### 該当のJobの実行ボタンクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/33ddc9b9-1d04-677a-5778-79b65df7f560.png)

### 「実行」ボタンクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/51f0d3e8-4468-a621-d018-7d374419de95.png)

### 該当のJobのログボタンクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/d26f3554-ef63-d8fa-5608-95cc4ae4272d.png)

### ログが出力されていることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/9ac5b886-2d4b-57cd-1fea-9b5f47cc9f39.png)

### 特定の時間にバッチを自動実行する
WebJobsでPJ を作成すると「Settings.job」のファイルが作成されていると思うので実行したいタイミングの設定を行う。今回はに9:30実行
```
{

  //    Examples:

  //    Runs every minute
  //    "schedule": "0 * * * * *"

  //    Runs every 15 minutes
  //    "schedule": "0 */15 * * * *"

  //    Runs every hour (i.e. whenever the count of minutes is 0)
  //    "schedule": "0 0 * * * *"

  //    Runs every hour from 9 AM to 5 PM
  //    "schedule": "0 0 9-17 * * *"

  //    Runs at 9:30 AM every day
      "schedule": "0 30 9 * * *"

  //    Runs at 9:30 AM every week day
  //    "schedule": "0 30 9 * * 1-5"
}
```

発行公開するとAzureに反映される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/07d54fae-69d2-af6a-470c-a58cdeda6ed2.png)

# 最後に雑談
他にも元々あるPJをWebJobs用にしたりgitからアップしたり色んな手段があるようですので、手順を確認できたら記事にしていきたいと思います