GithubCodespace使ってAzureFunction(TimerTrigger)のデバグ環境作る

# はじめに
AzureFunctionのTimerTrigger関数を作ったはいいが
デバグ環境でドはまりしたのでやったことを記録しておく

# 参考
ざっくりはこちらをベースにしました。

https://qiita.com/watyanabe164/items/e3c3af42262f7a9b42fa

# 前提
* Azureアカウント取得済み
* Github CodeSpaceが利用できる

# 開発環境立ち上げ
azurefunctionプラグインをインストールする

コマンドパレット（Ctrl+Shift+P）より、”codespaces: Add Container Cofiguration Files...”実行
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/d916112e-b7b2-d5df-141a-da82b47ebef7.png)

"Modify your active configuration..."クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/c42689fd-668e-9c25-7d23-6c2dfaf066ef.png)


以下を選択して、OK クリック
Azure Functions Core Tools
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/4f3909f5-74b1-ed71-4617-f5cff5dd6a29.png)


OK クリックすると、画面右下のポップアップからRebuildを促されるので "Rebuild now" クリック
※ポップアップが出てこなかったら画面右下のベルのアイコン（通知アイコン）をクリックするとRebuildの案内が出る

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/2a4b764b-d77d-e4bf-452c-0ced9aa41338.png)

Rebuildをクリックしてしばしまつ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/3e394e75-62b0-71f5-f604-2ad93c034339.png)

で、完成

# Azure Function Project & Azure Functionの作成
画面左下のAzureプラグインをクリック、WORKSPACE枠のFunctionアイコンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/f7948889-ddbb-2bf1-5303-6df26aaa11a3.png)

Create New Project... クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/0d5ff036-25c2-fb7f-7901-a54d5be5f7bc.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/8a2cfb93-b12e-2cd1-ea3c-6323f8d91221.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/255137dc-6844-e850-0c5f-28a21ad5be37.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/e332c8e9-7ec3-d19a-bb2a-75ac0abe1ce1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/cf1ec9fe-b1d5-fc3a-19fd-82fb3b69a74c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/ad232e28-46a9-6174-6ec3-74ba1e4f459c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/9de6dbdf-8696-d6b6-43ed-280cb3e82c0e.png)

スケジュールは～。。。デフォルトのまま（この設定だと1分おきに実行、ってなる）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/29047cea-b616-5f1d-098f-31a222ec6aa3.png)

しばし待つと完成。
こんな感じで諸々設定ファイルができる。
本体は、function_app.py。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/308c447f-e730-c9cc-4918-551fc9737545.png)

最後に、、、pipでライブラリをインストール。これで準備完了。

```
pip install -r requirements.txt 
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/9bd9af61-f557-9d83-92b5-45fd695a26ab.png)


# デバグする
まずは、ブレークポイントをてきとうに設定。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/d407165e-c8da-cf89-75a8-b99a525920b2.png)

デバグプラグインより、Attache to Python... クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/9f0505cd-5dc7-c44f-d23f-857658d396cc.png)

しばし待つと、、、ブレークポイントで止まる。これでデバグできる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/c09cd0a9-5c66-7f6b-9bb8-779592ff86c5.png)

以後は、1分おきに実行される。

## コードを修正して再度デバグ
一時停止ボタンをクリック、これでデバグは止まる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/db5c9e88-1bdd-e4e1-37e4-1d9eb9b0d96f.png)

ソースコードを修正。で、再開ボタンをクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/8ee6fc95-ffd6-9177-c894-1b008ca63b12.png)

## 修正してたらデバグのアイコン消えたーってとき
デバグプラグインの実行ボタン（△のアイコン）をクリックしたら、出てくるので一安心。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/9d1c54d7-9581-d84b-17c0-bc868addd322.png)

## AzureFunctionのデプロイ
※前提としてAzureポータル側でAzureFunctionをつくっておくこと
今回はこのFunctionsにさっき作ったアプリをデプロイする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/aa1d6e14-15da-9687-4697-1ac71fdc1a17.png)

codespaceに戻って。。。
Azureプラグインより、、、RESOURCE>Sign in to Azure クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/b96faa18-8f15-0b71-9caa-a2ce248c5e30.png)

許可　クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/3ade160a-e882-c558-b99e-8ed97c7a25b7.png)

ログインに成功したら、↓↓のように作成済みのAzureFunctionsが確認できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/edc6d347-861c-0a65-ca4d-4cc89a2921c6.png)

画面左下のWORKSPACEよりFunctionsアイコン クリックしてDeploy to Function App... クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/5fa3d38f-ed23-b7ef-422a-27d45d0e7d7d.png)

デプロイ先につくったfunctionsが出てくるのでクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/a4428522-08fe-7c74-8beb-9338083bb74e.png)

Deploy クリック。で、しばし待つ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/8c7d0c07-ccda-81e6-9768-66eef1a18296.png)

完了したら右下に通知出る。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/79c755bb-7b8c-0597-7465-3060934c5f38.png)

## デプロイっぷりの確認
ポータルより。関数＞アプリファイル＞function_app.pyができてるのでクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/978f3f71-85fa-e19c-e635-f385a3fc890c.png)

反映されることが確認できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/dbacaa9d-8792-460f-8f6c-7947618cb498.png)

続いてログの確認。ログストリームクリック
しばし待つと～・・・ログが表示されて、実装したログがでてることが確認できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/9774be96-c216-c234-785a-4e9011aaf424.png)

# おわりに
なんとかデバグできる状況が作れた・・・よかった。