【AzureでRDBとfunctionsを繋ぎたい】(2)functionsの作成

★当記事は連続記事となります。
前項の設定を使用している箇所もあるので最初からお読み頂くことをお勧めします。

+ [AzureでRDBとfunctionsを繋ぎたい（タイトル）](https://qiita.com/yotsuno/private/5897c2a33984ecb99a54) 
+ [　　(1)SqlDataBaseを作るまで](https://qiita.com/yotsuno/private/b008853cf8a9a433a83f) 
+ 　　(2)functionsの作成（当記事）
+ [　　(3)functionsからSQLの操作](https://qiita.com/yotsuno/private/efcec3ef600824f83e04)
　

次にAzureFunctionsを作成する手順です。
#AzureにFunctionsを追加

マーケットプレイスから今度は「関数アプリ」と検索をかけます。これがAzureFunctionsとなります。
![001関数アプリを選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/6fa1a6f7-9315-e15e-a1e8-893168326bb8.png)
　
　
そのまんまのものが出るので作成
![002作成を押してみる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/6cab97ed-f944-68e9-1515-da0c04a22a08.png)
　
　
・リソースグループを選択します。
・任意の名前を付けます。
・ランタイムスタックはC#で組むので「.NEt Core」で
・地域は近くの所を。今回はEAST ASIAで
・下のホスト中を選択

![003関数アプリ設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/0320c05e-7065-f9f2-49ec-a8d7f9ccf6f8.png)
　
　
ここでは主に確認です。
・ストレージアカウント名を確認してください。わかりやすい名前に変更してもいいかも？
・プラン。今回は従量課金プランになっているか確認。
・確認が終わったら確認及び作成を押します。
![004ホスト情報見る.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/f60220db-8e91-71d5-7162-c0379b427f1e.png)
　
　
生成します。
![005生成する.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/0f2b8f1a-6a91-1aac-fa81-607b1d1581d1.png)
　
　
　
デプロイが終わるとリソースグループの中に加わります。
![007リソースグループの中に出てくる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/a8a40a37-bff0-ee5d-aed5-42cbb3777177.png)
　
　
# Visual StudioでFunctionsを作る
Visual StudioでAzureFunctionsを作ります。
## Azure開発ワークロードの追加
Visual Studio 2019と「Azure開発」ワークロードもインストールされていることが必要となります。詳しくはこちらの「前提条件」を参照。
https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-create-your-first-function-visual-studio

既にVisual Studioが入っている方でワークロードを追加するにはこちら。
インストーラーから行うみたいですね。
https://docs.microsoft.com/ja-jp/visualstudio/install/modify-visual-studio?view=vs-2019

また、初回にazureアカウントとの紐づけ作業があったかも。

## プロジェクトの作成
![008VSを立ち上げよう.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/3b5a7cae-6954-b9fc-7eca-42193648421f.png)
　
　
新しいプロジェクトを作成します
![009新しいプロジェクトの作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/82065815-3b3b-5354-9be1-0034db6dea0a.png)
　
　
検索に「azure」と入れるとAzure Functionsが見つかるので選択して次へ
![010Azurefunctionsを選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/1f1a2e0c-c232-04ee-390a-5f50c338a103.png)
　
　
任意のプロジェクト名をつける。プロジェクトの保存先も指定し、作成。
![011任意のプロジェクト名などをつける.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/2e5ad087-ff51-6f8c-d33f-a01dd98f9c48.png)
　

## Azure Functionsアプリケーションの作成
そうすると「新しいAzure Functionsアプリケーションの作成」が出てくる。
ここではいくつか設定をする
　
　
左側にあるのがトリガーの選択。azureは様々なトリガーで走る関数を作成できるが、今回はHTTPトリガーを選択。HTTPが実行された時に走るfunction
![013HTTPトリガーを選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/1da27391-15f1-7822-371a-ff98082a98b6.png)
　
　
ストレージアカウントのリストボックスから「参照」を選択。
![014ストレージアカウントのリストボックスから参照を選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/e22f7c19-6f8e-fa5f-612e-32511d1efdfe.png)
　
　
先ほどazureポータルで作ったストレージが出てくるのでこれを選択して追加。
![015・004で出ていたストレージ情報見て選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/e6bc5d0e-8dad-e866-916b-148ff0740b03.png)
　
　
再び戻るのでAuthorization levelの設定。今回は実験なのでアノニマスで。セキュリティを上げる必要が出たらここも変更していく。これで作成GO。
![016・アノニマスにする.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/11cf3220-367d-0232-c081-3022e0ce370a.png)
　
　
すでにコードとかが出来上がっているので実行ボタンを押す
![017・作成されているので実行ボタンを押す.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/45afcd9a-095c-6f17-a102-dd9f848ae77b.png)
　
　
エミュレーターが起動する
![018・エミュレーターが実行される.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/01214777-d424-3b76-0442-6f1a50d20111.png)
　
　
ローカルホストのアドレスがあるのでこれをコピー
![019・ローカルホストのアドレスがある.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/417767e3-6fe2-1a1b-3dba-ffb5758edbc4.png)
　
　
ブラウザに張り付けると実行できる。
HTTPトリガーにデフォルトで入っているコードは、名前が「name=〇〇」で追加されていた場合、それを表示するが、無い場合は警告が出るというもの。
![020・ブラウザに入力で実行できる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/0b03f967-d7e0-e464-d464-c4f91ce37c82.png)
　
　
試しにブラウザ上でGETパラメータを追加。こんにちはおにぎりさん。
![021・GETパラメータ追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/fba98bee-3824-2b67-22d3-3708da3f081b.png)
#もうデプロイ
確認が出来たのでデプロイ。
ソリューションエクスプローラーからファンクションを右クリックでメニューが出るので「発行」を選択。
![022・ファンクションを右クリックで選択後、発行を選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/8bfeb34e-eea6-51e2-9683-2fe76c113814.png)
　
　
発行先、が出ててくるので「既存のものを選択」でプロファイルの作成
![023・発行先・既存のものを選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/4a50b4ce-272e-c5a1-8d51-571f84f1630d.png)
　
　
最初の方でポータルで作った関数を選んでOK
![024・作った関数を選んでOK.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/0514b581-18a3-ed83-c314-c1a0b701e5ed.png)
　
　
これでazure関数アプリの開発が出来るようになった。発行を押せば更新が出来る。
![025・これでazureの関数アプリの開発が出来るようになった。発行を押せば更新が出来る.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/d8465b80-770d-a848-e372-d2ba28c9ed57.png)
　
　
関数アプリのポータルから関数を選択。
function1ってのはデフォルト名なので本来は開発の時に名前を変えよう。
![026・関数アプリのポータルから関数を選択。function1ってのはデフォルト名なので本来は開発の時に名前を変えよう.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/699dcfb3-6b15-8aa8-7f3d-a0f9f4e03595.png)
　
関数urlを取得とあるので選択
![027・関数urlを取得.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/41376264-59f1-6fe4-4b43-87b645c6be43.png)
　
　
取得できたURLでこちらもちゃんと動いてる！
![028・ちゃんと動いてるー！.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/564f99bc-dcc3-2c43-0b5d-2d4b3a0673f8.png)
　
　
NEXT:[(3)functionsからSQLの操作](https://qiita.com/yotsuno/private/efcec3ef600824f83e04)