1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Github Codespaces使ってAzure Functionsの開発環境作る

Posted at

はじめに

仕事の関係でAzureFunctionsを使うことになった。
AzureFunctionsは座学でしか扱わなかったので、試しに使ってみる
せっかくなのでローカル環境は使わずgithub 環境使って作成する

参考

一番参考になりました。感謝。

前提

  • Azureアカウント取得済み
  • Github CodeSpaceが利用できる

開発環境づくり

Codespacesの設定ファイル作成

コマンドパレット(Ctrl+Shift+P)より、”codespaces: Add Container Cofiguration Files...”実行
image.png

"Modify your active configuration..."クリック
image.png

以下を選択して、OK クリック

  • Azure Functions Core Tools
    image.png

OK クリックすると、画面右下のポップアップからRebuildを促されるので "Rebuild now" クリック
image.png

もう一回聞かれるので "Rebuild"クリック
image.png

こんな感じで裏でgithubが頑張ってるので数分程度待つ。。。
image.png

再起動後、左下あたりにアイコン(赤線部)が増えてるのを確認する
image.png

ローカル上でAzure Functionsプロジェクトの作成

Azure Functions プロジェクトの作成

画面左下のWORKSPACEに見えないけれども。。。クリックできる箇所がある。
Create Function... クリック(ホントはFunctionのアイコン出るはずなのになぜか表示されなかった。。。)
image.png

今動かしてるリポジトリでFunctions作りたいので azfunction... クリック
image.png

Python クリック
image.png

推奨されてるので Model V2 クリック
image.png

python 3.10.13 クリック
image.png

最終的に作りたいものは時間実行の関数だけど今はとりあえず作りたいので"HTTP trigger" クリック
image.png

ここはこのままEnter
image.png

認証キーとかは不要でとりあえずつながるやつ作りたいのでANONYMOUS クリック
image.png

できあがり。
処理の本体は、function_app.py
nameって引数に値を入れて実行すると返事を返すプログラムっぽい。
image.png

最後に、requirements.txtできてるのでターミナルでインストールしておくこと

pip install -r requirements.txt

image.png

試しに動かす

早速出来上がったローカル上(正確にはcodespace上)でHTTP Trigerを動かしてみる。

image.png

少し待つと、新しいターミナルが増えてる。
で、そこのログにURLが割り振られてる。
http://localhost:7071/api/http_trigger
image.png

リンクをクリックすると、ちゃんとfunctionが動作していることが確認できる。
image.png

次はこのURLに対してcurlを飛ばす

curl http://localhost:7071/api/http_trigger

結果はこちら、動作OK。引数nameを入れてって指示出た。
image.png

では次は引数nameを入れて実行

curl http://localhost:7071/api/http_trigger?name=nabehiro

成功!無事にHTTP Triggerの処理が実行できました。
image.png

Azure上にAzure Functionを作成する

ローカルに実行環境できたので、続いて、Azure上にFunctionを枠組みを作ろう。
これ、ポータル上で作ってもいいけど、せっかくなのでcodespace上で作った

AzureにログインしてからFunctionを作る

Azureログイン

"Sign in to Azure" クリック
image.png

ブラウザの別タブからログイン画面出るのでクリック
image.png

ログインに成功するとVSCode上で読み込み待ちになるのでしばし待つ
image.png

完了したら以下のようにリソース一覧が現れる
image.png

Functions作成

Azure functions を右クリックして "Create Function App in Azure" クリック
image.png

functionsの名前を決める。グローバル名になるため適当に且つかぶらないやつを選ぶ。。。
image.png

pythonのバージョン決め。python3.11で。
image.png

ロケーションの選択。japan eastで。
image.png

しばしまつ。。。裏でいろいろと頑張ってくれてるようだ。。。
image.png

1分ほど待ったらできた。
ログ末尾にURLが出てるのでクリックしてみる

image.png

動いてるっぽい!でも、このままは空っぽなのでちゃんとデプロイしてやろうと思う。
image.png

Azureにデプロイ

ローカルにアプリができて、AzureにFunctionsの枠ができたので、いざデプロイ。
※あらかじめCodespace上でAzureログイン済みであることを確認してから実施

WORKSPACEのアイコンクリックしてから "Deploy to Function App..." クリック
image.png

クリックすると、画面上部に選択可能なfunctionsがあるので "pro-nb-..."クリック
image.png

"Deploy" クリック
image.png

1分ほどまったら完了
image.png

ポータルからデプロイっぷりをチェック

ポータル上で、デプロイ先のfunctionsを選択
関数>アプリファイル へ移動するとデプロイしたファイルが確認できた。
image.png

動作確認しよう

codespace上のターミナルから実行

https://pro-nb-hellofunc-001.azurewebsites.net/api/http_trigger?name=nabehiro

成功!
image.png

ついでにブラウザからも動作確認しよう
こちらも成功
image.png

~おしまい~

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?