LoginSignup
1
2

More than 1 year has passed since last update.

Azure Deployment Environment の体験記とつまずきそうなポイント

Last updated at Posted at 2022-11-22

Azure Deployment Environmentを触ってみてつまずきそうなポイントをまとめておく

参考:Azure Deployment Environments プレビューとは

デベロッパーセンターを作成する

公式ドキュメント通りに作成する

設定周り

作成したデベロッパーセンターで以下のような設定を行う。

  • デベロッパーセンターでマネージドIDを割り当てる
  • デベロッパーセンターでAzure ロールの割り当て:所有者ロール を割り当てる
  • KeyVault を作成してアクセスポリシーからマネージドIDを割り当てる

これらの設定によりデベロッパーセンターが KeyVault にアクセスできるようになる。

試す環境として👇のリポジトリをforkして参照した。
https://github.com/Azure/deployment-environments

PAT の生成をしないといけないので自分のアカウントにforkしておく

PAT の生成は、GitHub では右上の自分のアイコンの[Settings]へいき、[Developer Settings] -> [Personal access tokens(classic)] から生成できる。
生成した PAT は先ほど作成した KeyVault のシークレットに保管する。
デベロッパーセンターが 保管したこのシークレット(PAT)を参照できるようにシークレット識別子をコピーしておく

PAT周りを適切に設定しないとカタログの追加でたぶん失敗する。

カタログの追加

以下の内容を入力して追加する

  • 名前: 任意のカタログ名を入力
  • Git クローン URI: リポジトリのURL。設定周りでフォークしたものを入力
  • ブランチ: main
  • フォルダーのパス: /Environments
  • シークレット識別子: PATを保管しているシークレットのシークレット識別子を入力

image.png
シークレット識別子は、マネージドIDやアクセスポリシーを設定していないと失敗するので適切に設定する。
追加すると同期がスタートする。

失敗した場合は上記の設定を見直す。

環境の種類の作成

デベロッパーセンターから環境の種類を作成する。
今回は Dev で作成した。
image.png

プロジェクトの作成

デベロッパーセンターからプロジェクトを作成する
[管理] にある [プロジェクト] へ移動して [作成] を押す
任意で名前などを入力して作成した。
image.png

環境の作成

作成したプロジェクトへ移動して、そこから [管理] にある [環境] へ移動すると👇の画面が表示される。
image.png
現在(2022/11/22)、GUIでは用意されていないため Azure CLI から作成する。
コマンドは公式ドキュメントあるのでそれを参考にしながら作成。
(※2022/11/22 時点だとコマンドが間違ってたりしてるので注意)

参考にしたコマンド→環境の種類

Azure Portal 上の Cloud Shell だとログイン周りで私はうまくいかなかったのでlocalでコマンド流した。

az コマンド使用できるのであれば local でも問題なくできる。

拡張機能をインストール

az extension add --source https://fidalgosetup.blob.core.windows.net/cli-extensions/devcenter-0.1.0-py3-none-any.whl

ログイン

az login

環境作成

az devcenter dev environment create --dev-center-name dev-center-hoge --project-name pj-hoge -n env-hoge-test --environment-type Dev --catalog-item-name WebApp --catalog-name catalog-hoge --owner me
  • --dev-center-name: プロジェクトがあるデベロッパーセンターを入力。今回は最初に作成したデベロッパーセンターでok
  • --project-name: 作成したプロジェクトの名前を入力
  • -n: 作成したい環境の名前(任意の名前を入力)
  • --environment-type: 環境の種類を入力(今回は Dev)
  • --catalog-item-name: forkしたリポジトリのEnvironments/WebApp/manifest.yamlで記述してるnameを入力する。※1
  • --catalog-name: 追加したカタログの名前
  • --owner: me を入力

※1 --catalog-item-name では👇画像にある name に指定してある WebApp を入力した。(画像はfork元のリポジトリになってます)
image.png
正常にコマンドが走ると Running になるので待機。
コマンドが問題なければ Azure Portal 上でプロビジョニングのステータスとかも出てきます
image.png
しばらくすると プロビジョニングの状態が成功になります。
この画面からリソースグループ、コスト分析の画面へ遷移できる。

注意点

  • az login でログインしてからでないと失敗しますのでまずはログインする
  • 存在するリソース名(デベロッパーセンター、プロジェクト、環境の種類、カタログ名、カタログアイテム名)を入力しないとおそらくエラーになる
  • もしプロビジョニングが失敗した場合は、設定まわりを見直す。
    • ロール、KeyVault のアクセスポリシー、GitHub のPATなど
    • カタログの同期を再度確認してみる。同期が失敗した場合はPATやKeyVault周りの設定が怪しいと思われる
  • コマンド誤表記
    • 公式ドキュメントでは -g <resource-group-name> でリソースグループを選択しているが、このオプションは現時点ではないらしい
    • 公式ドキュメントでは ---catalog-name <catalog-name> となっており、-が1個多いのでコピペするとき注意
    • 公式ドキュメントでは --parameters <deployment-parameters-json-string> がありますが必須オプションではないです。おそらくデプロイ実行時の設定まわりをjson文字列で渡せるのだと思ってます。
    • 公式ドキュメントでは --owner meは記載されてないが、この所有者識別子のオプションがないとたしか認証でエラーになり、プロビジョニングが失敗した気がします。
  • 困ったら--helpオプションでコマンドのオプションを確認する
az devcenter dev environment create --help

image.png

環境の削除:おまけ

最後にリソースをきれいにするために以下のコマンド流しました。

az devcenter dev environment delete --dev-center dev-center-hoge --project-name pj-hoge -n env-hoge-test --user-id "me"

正常に削除できていたのを確認しました。

1
2
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
2