LoginSignup
1
0

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

Last updated at Posted at 2022-03-06

はじめに

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

今回は大規模なDataFactory向けのパターンである、手動大規模向けとなります。

注意事項:

  • Synapse では利用できません。SynapseはARM上に成果物を保持していないため
  • トリガーの移行では一時的なトリガーの停止が必要です。
  • 反映は増分であるため、削除の反映は手動で消すかスクリプトの利用が必要です。
  • ファイアウォールを設定しないARMテンプレート用のストレージが必要です。

2022/03時点の情報です。

他パターン

Azure Data Factoryの環境反映パターン【手動、小規模】
Azure Data Factoryの環境反映パターン【自動(承認付き)、小規模】

ARMテンプレートの制限とData Factoryの対応

ひとつのARMテンプレートファイルにはリソースの最大数の制約があり、きわめて多くのリソース(パイプライン、データセット、リンクサービスなど)が存在する大規模なData Factory リソースでは、この制約で反映が難しいケースが存在します。

Data Factoryでは、ARMテンプレートファイルを分割し、リンクテンプレートという機構をもちいることでこの制限をパスします。

参考記事

https://qiita.com/ryoma-nagata/items/5fa5ef1d7f5f8029cfa4

https://docs.microsoft.com/ja-jp/azure/data-factory/continuous-integration-delivery-linked-templates

手順

準備

以下のような状態だとします。

開発環境

リンクサービス:
2022-03-06-11-40-49.png

データセット:
2022-03-06-11-41-13.png

本番環境

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

リンクサービス:
2022-03-06-11-44-28.png

データセット:
2022-03-06-11-44-41.png

1. ARMテンプレート用のストレージの準備

このようにartifactというコンテナをもつストレージを用意しました。(コンテナ名はなんでもいいです)

2022-03-06-12-14-51.png

このストレージに対してARMがアクセスするためにファイアウォールを設定しないようにしておきます。

2022-03-06-12-16-24.png

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

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

2022-03-06-11-47-35.png

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

2022-03-06-11-48-06.png

今回の手順では、linkedTemplates 内のファイルを利用します。

3. linked templateのアップロード

linked templateは、以下のように、masterと連番付きのARMテンプレートファイルが存在します。(+パラメータファイル)

2022-03-06-12-18-22.png

大規模な構成では、この連番付きのファイルが増えていき、リソースのデプロイ数を調整します。

連番ファイル内でDefaultValueにストレージなどの情報がふくまれるので、ストレージ上にこのような情報を残しておきたくない場合には空の値にしておきましょう。※のちの手順内でパラメータにて指定されます

2022-03-06-12-41-49.png

この連番ファイルをすべて上述のARMテンプレート用のストレージにアップします。

2022-03-06-12-19-58.png

このファイルにアクセスするために、共有アクセストークンを作成します。

アクセス許可はリスト、読み取り

2022-03-06-12-20-31.png

必要に応じて、期限などを設定して、SASトークンおよびURLを生成をクリックします。

2022-03-06-12-20-56.png

生成されたURLから、
?以前の文字列

2022-03-06-12-22-58.png

?を含む以降の文字列をメモします。

2022-03-06-12-24-46.png

4. ARMテンプレートのインポート

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

2022-03-06-11-49-14.png

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

2022-03-06-11-49-36.png

先ほどダウンロードしたうちの、ArmTemplate_master.json を読み込みます。

2022-03-06-11-50-39.png

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

2022-03-06-12-27-19.png

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

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

  • 対象の本番環境ADFのリソース名
  • 本番環境ADF用のデータレイクストレージurl
  • 手順2でメモした**?以前の文字列** をContainer URIとして
  • 手順2でメモした**?を含む以降の文字列** をContainer SAS Tokenとして

2022-03-06-12-28-35.png

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

2022-03-06-11-57-16.png

確認と作成作成 からデプロイします。
もし失敗する場合、ARMテンプレート用のストレージの設定ができていない場合があります。(ファイアウォール、SASTokenに?の付与をしていない)

2022-03-06-11-57-47.png

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

2022-03-06-11-59-02.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