Azure Data Factoryの環境反映パターン【手動、小規模】

## はじめに

Data Factoryの開発環境から本番環境への反映方法についてまとめます。

今回は最も単純なパターンである、**手動**、**小規模向け**となります。

注意事項：
- Synapse では利用できません。SynapseはARM上に成果物を保持していないため
- トリガーの移行では一時的なトリガーの停止が必要です。
- 反映は増分であるため、削除の反映は手動で消すかスクリプトの利用が必要です。


2022/03時点の情報です。
## 他パターン

[Azure Data Factoryの環境反映パターン【手動、大規模対応】](https://qiita.com/ryoma-nagata/items/fe4b3cce0b5f013b200c)
[Azure Data Factoryの環境反映パターン【自動（承認付き）、小規模】](https://qiita.com/ryoma-nagata/items/3d98bb444cecbbb23a3e)

## 参考記事

[https://docs.microsoft.com/ja-jp/azure/data-factory/continuous-integration-delivery-manual-promotion](https://docs.microsoft.com/ja-jp/azure/data-factory/continuous-integration-delivery-manual-promotion)


## 手順

### 準備

以下のような状態だとします。
#### 開発環境

リンクサービス：
![2022-03-06-11-40-49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/f0ff7165-a563-d42c-dbdb-a623a551c984.png)


データセット：
![2022-03-06-11-41-13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/dd602a99-80db-7150-f94b-ce7420912518.png)


#### 本番環境

作成した時点のデフォルト状態です。

リンクサービス：
![2022-03-06-11-44-28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/b6efd0f8-86ac-3a0f-614a-88ce11cd72fd.png)


データセット：
![2022-03-06-11-44-41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/e89107d2-7932-6d48-60aa-ffa69d254090.png)


### 1. ARMテンプレートのエクスポート

開発環境のADF上の管理ハブから**ARMテンプレート**→**ARMテンプレートのエクスポート**を実行します。

![2022-03-06-11-47-35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/6d8a046b-3b9a-42ec-4580-f0408220ff43.png)



ダウンロードできたファイルを確認します。

![2022-03-06-11-48-06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/2a7d0fc7-423b-a315-4a70-b045a0c237e6.png)


今回の手順では、**arm_template.json** を利用します。

### 2. ARMテンプレートのインポート

同様に、開発環境のADF上の管理ハブから**ARMテンプレート**→**ARMテンプレートのインポート**を実行すると、カスタムデプロイ用画面に遷移します。


![2022-03-06-11-49-14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/8a080009-f84c-aa2e-2003-4f238eba352f.png)


**エディターで独自のテンプレートを作成する** を選択します。

![2022-03-06-11-49-36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/df056a01-bb72-6f1f-035c-84cfc0714741.png)


先ほどダウンロードした**arm_template.json** を読み込みます。

![2022-03-06-11-50-39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/a2136ba2-8563-80f4-3ac7-62ad905b78c4.png)



結果が表示されるので、**保存**をクリック

![2022-03-06-11-51-20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/73b23871-a011-b172-9eae-4f3e92b17c2d.png)


**プロジェクトの詳細**では、対象の本番環境ADFが存在するリソースグループを選択します。

インスタンスの詳細では、本番環境用のパラメータを設定します。
今回は以下

 - 対象の本番環境ADFのリソース名
 - 本番環境ADF用のデータレイクストレージurl

今回の環境では、本番と開発の名称差分はdev->prodに変更するだけなので該当箇所を修正しました。

![2022-03-06-11-53-36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/946238a6-3ca9-b8c0-3fc5-2af117798c42.png)



パラメータファイルはダウンロードしておくと次回以降は読み込むだけで利用可能です。

![2022-03-06-11-57-16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/2eedff3c-9c62-95ca-735a-3f616959c6ed.png)



**確認と作成** → **作成** からデプロイします。


![2022-03-06-11-57-47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/61697727-f0e0-0af2-53a0-b6ac2735ff60.png)


本番環境にデプロイされました。

![2022-03-06-11-59-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/ef23b510-ed28-c9d7-e00f-0334346ccd95.png)


なお、リンクサービス名は環境に関する文字列はいれないことを推奨します。（各環境間で同じ名前を使いたい）