【AzureでRDBとfunctionsを繋ぎたい】(1)SqlDataBaseを作るまで 

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

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



# ご注意
※幾らかの費用が発生する可能性もある事をご了承の上、テストが終わったら削除する等、各自でコスト確認と管理をお願いいたします（無料試用がある方はそれで吸収できるかも）ちなみに自分は長らく放置で1カ月600円位かかりましたが勉強代として。

※設定間違えると月に数万円レベルの設定もサクっと出来ちゃうので慣れない内は注意し『コストと請求』をチェックして放置などしないようにしましょう。クラウド破産ダメ絶対。

#前提
まずはAzureのアカウントを作成します。
https://azure.microsoft.com/ja-jp/

後は時間があればAzureのポータルの使い方など学んでおくと理解が早くなるかも。
https://docs.microsoft.com/ja-jp/learn/paths/azure-fundamentals/


#リソースグループの作成
Azureのサービスを包括してくれるリソースグループを作成します。ポータルからリソースグループを選んで「追加」を押す。
![001リソースグループの作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/86b687fa-a4bc-22d2-0a6f-3d915db72399.png)
　
　
次にリソースグループ名を入れて、リージョンを選択します。お住まいの場所によって東日本や西日本を選ぶといい感じ。今回は東日本リージョンに「sql_and_function_group」を作りました。
![002リソースグループの作成2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/95c91501-316f-1072-2448-a4bf8bda7bbb.png)
　
　
作成を押すと、「検証に成功しました」が出るので出たら再度作成ボタンを押す。そうするとリソースグループが出来ます。
　![003リソースグループ出来た.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/95f281b1-8dd1-cfd1-9900-1fba450edf63.png)
#### リソースグループに関して
こちらの記事にも詳しく記載してあります。
https://qiita.com/tkmry/items/78baa38b81effeaf812f
#SQLDatabaseを作成
次に、SQLDatabaseの作成です。ポータルからリソースの作成、を選んで
![004リソースの追加ボタン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/10d1e04d-80fd-da97-dbb6-572c6825cb9f.png)
　
　
Marketplaceを検索に「SQL Database」と入れます。人気順の所に並んでいる事もあります。
![005マーケットプレイスにSQLDATABASEと入れる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/e9e0ffbb-2042-ffe0-9690-8e16187381df.png)
　
　
もしくは検索にSQLと入れると候補がたくさん出てくるので、「SQL Database」を選びます。<font color="Red">SQLで似たものがあるので間違えないように注意。</font>
![006もしくはSQLと入れると候補が出てくるがこれを選ぶ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/f9a6f271-8025-779d-4267-9a5def86d13e.png)
SQL Databaseの画面になっているのを確認して「作成」を押します
　
　
![007作成ボタンを押す.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/b7ff4f8d-1b7f-c7b2-096d-8e63cd7f9ed7.png)
　
　
リソースグループを選択し、データベース名を入れます。今回はbokurano_sqlとしてみました。
![008リソースグループを選択し、データベース名を入れる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/5baf7060-e621-91a0-f531-7d40dd1fb379.png)
　


サーバーの新規作成を選びます。
![009サーバーの新規作成を押す.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/f23c06dd-399a-f53c-38d8-c3c970f481aa.png)
　
　
サーバーを作ってみます。
　サーバー名や管理者名、パスワードやリージョンを設定してOKを押します。
<font color="Red">サーバー名、管理者名、パスワードは忘れないようにしてください</font>
![010サーバーを作る.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/7aec0fdf-85e2-7eca-d35a-47867b1a0ba1.png)
　
　
#‼超重要‼コンピューティングとストレージの設定
<font color="Red">ここの箇所は必ず設定と確認を行ってください。高額な料金が発生する事もあります。</font>
「コンピューティングとストレージ」の「データベースの構成」を押します。
無料アカウントの場合は違うんでしょうか。今の僕の所だとデフォルトが月４万円コースになっている模様。
![012ちゃんと設定しないと高いよ！.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/23d0d401-3851-104e-fda2-75039d2efda0.png)
　
　
この実験段階ではちゃんと設定して、価格を抑えましょう。最初はベーシックにします。お探しですか？と言われているのでそこを押します
![013最初はベーシックにしよう1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/82d73369-6355-2cfe-f7a0-dcd32b69a319.png)
　
　
ベーシックを押します。
![013最初はベーシックにしよう2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/4ce42a7f-86dd-29c0-1ba5-fff58a6d7d01.png)
　
　
そうすると安くなる！（性能は最低ですが）
![014価格を確認しよう.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/5e2e2bb6-6add-a61d-ebcc-d7228c6cdf5b.png)
　
　
適用ボタンを押す
![015適用ボタンを押す.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/3e38d021-e895-9771-4fbc-b3ed4ac77155.png)
　
　
<font color="Red">お値段を必ず確認して作成</font>
![016お値段確認して作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/6e4dd2a6-21ad-122c-510b-d666a16fa063.png)
　
　
頑張ってデプロイしてくれます
![017頑張ってデプロイしてくれる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/710b3fb7-cf0d-54bd-a4b8-3ce017962ec8.png)
　
　
# クエリエディタでSQLにアクセスしてみよう（ファイアーウォールの設定も）
デプロイが終わると、リソースグループの中からも選べるようになります。
早速作ったbokurano_sqlを選んでみましょう。
![018リソースグループの中にsqlが出来上がったので選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/e39fb316-d065-c9f9-ded6-1fdb3f91a463.png)
　
　
ブラウザ上でクエリが発行できるクエリエディタがあるので、これを試してみましょう。
（記事執筆段階ではプレビュー版との事）
![019クエリエディターをやってみよう.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/a1db6d63-1956-d03c-f308-a44f8d862de0.png)
　
　
クエリエディタが開くので管理者名とパスワードを入れてOKを入れると…
![020ログイン名とパスワードを入れてみよう.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/cb65a56e-9aa3-9cec-b4b8-2003a6042616.png)
　
　
エラーが出た！！　サーバーファイアーウォールに弾かれている模様。
ご親切にサーバーファイアーウォールの設定へのリンクがあるのでここから設定へ
![021ファイアーウォールに引っかかった.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/8b97728b-ce2a-9776-1b50-51045df234d9.png)
　
　
サーバーファイアーウォールの設定。
※自分のクライアントからアクセス出来るようにする。
※「Azureサービスおよびリソースにこのサーバーへのアクセスを許可する」をオン
※規則名と、自分のクライアントIPアドレスが記載されているので、それを開始IPと終了IPに入力する
![022ipを転記して解放.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/8c2dca90-aa40-fdad-69f8-2460c476142d.png)
　
　
ちゃんと除外のルールが出来ていたら保存を押す
![023ファイアーウォールを保存.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/10e6ba6d-d904-b5cd-d5ab-35e2e23eafde.png)
　
　
再度、クエリエディタのログインに挑戦すると今度はログインできた！
![024クエリエディタ繋がったよ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/c913200b-b48f-7860-8b82-c87df1a87933.png)
　
　
早速テーブルを作ってみよう。こんな感じに入力して実行ボタン

```
CREATE TABLE Hajimetenodb
(
    Id INT IDENTITY PRIMARY KEY,
    Name NVARCHAR(128) NOT NULL,
    Age INT NOT NULL
)
```

![025クエリ作ってみる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/3dcb179d-ab4e-8578-302f-caed678b8186.png)
　
　
クエリが成功しましたと出ればOK
![026クエリ成功.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/3c72f186-b0ab-a1a7-4403-26d2ec7741a4.png)
　
　
db情報のリロードボタンを押すなど、更新をすればHajimetenodbが出てきます。
![027更新すると出てきます.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/94acafb3-b212-dda8-733f-29ad52a27623.png)
　
　
データを入れたり、データを確認したりも出来る。下記を入れて実行。

```
CREATE TABLE Hajimetenodb
(
INSERT INTO Hajimetenodb VALUES ('TARO',25);
INSERT INTO Hajimetenodb VALUES ('JIRO',21);
SELECT * FROM Hajimetenodb;
)
```
※IDENTITYに設定した「Id」は勝手に採番されるので何も入れない。入れるとエラーになる。なので名前と年齢のみ。
※スクリーンショットでは３番と４番になっているのは先に実験した１と２を消しているから

![028クエリを発行できたよ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/91c2767d-b253-0aa5-1287-10652980e97e.png)
　
　
#SQL Server Management Studio(SSMS)の設定
専用のデータベース管理ツールをインストールする事で管理が簡単になります。
設定も簡単。

ここからダウンロードしてインストールします。特に特別な設定は要らなかったはず。
これを書いている時はバージョンは18.4でした。
https://docs.microsoft.com/ja-jp/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
　
　
最初にサーバー名の情報が必要になります。これはポータルからSQLデータベースを選択すると見る事が出来ます。
![001サーバー名はここ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/2579a07f-5ebf-160c-9a4a-c336df3a1c4d.png)
　
　
SSMSを立ち上げます。先ほどのサーバー名と、最初に設定したり、クエリエディタでも使った管理者名とパスワードを入れて接続を押します。（今回はクエリエディタ解説の時にやってしまったが、ここで接続する前も、本来ファイアウォールの設定が必要かも・・・？）
![002情報入力.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/13037cc8-436f-20b3-8981-3aaa7156ebc2.png)
　
　
ちゃんとHajimetenodbも入っている。
![003オブジェクトエクスプローラーにも出てる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/8e6a1f2b-4e0f-b8f1-6c86-eddc69035abf.png)
　
　
こちらでクエリを発行してみる。「新しいクエリ」ボタンを押す
![004新しいクエリボタンを押す.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/8c35c678-1c00-5f5d-b3b8-0e373754ae06.png)
　
　
ポータルのクエリエディタで入れたクエリをこちらでも入力して実行を押すとちゃんと出てくる事を確認。
![005クエリを入力して実行を押すとちゃんと出てくる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507462/7e8b2098-6999-aec7-84c4-1b18a93efa48.png)
 
 
NEXT： [(2)functionsの作成](https://qiita.com/yotsuno/private/28fa6f5468ac3c3bb3b7)