テンプレートに更新を適用する
azd
による最初のプロビジョニングとデプロイのプロセスは、Azure でアプリを開始するための優れた方法です。 ただし、環境が実行された後は、アプリ コードや Azure 環境への変更を開始する必要があります。
azd
テンプレートに変更を加えた後に Azure 環境を更新するには、いくつかの異なるワークフローから選択できます。 アプリケーション コードとインフラストラクチャ ファイルのどちらを変更したかに関係なく、いつでも azd up
を再度実行して環境を更新できます。 azd up
は、実行するたびにパッケージ化、プロビジョニング、デプロイの手順が完了されるため、すべての変更を確実に Azure にプッシュするためのシンプルな方法です。
ただし、azd
には、開発者ワークフローの特定のステージに対応する、よりきめ細かいコマンドも用意されています。 これらのコマンドを使うと、変更されていないことがわかっている不要なチェックや手順をスキップして、時間を節約することもできます。
azd deploy
- このコマンドは、アプリケーションのソース コードをパッケージ化して、Azure に再デプロイします。 ただし、Azure リソースに変更を適用するコードとしてのインフラストラクチャのファイルは実行しません。azd provision
- このコマンドは、コードとしてのインフラストラクチャのファイルへの変更に基づいて、Azure リソースを作成または更新します。 たとえば、azd provision
を Bicep または Terraform ファイルに追加した場合、Azure に新しいストレージ アカウントが作成されます。 ただし、このコマンドによってアプリケーションのソース コードがパッケージ化されたり再デプロイされたりすることはありません。
アプリ コードを更新する
あなたのチームは Todo アプリではなくチケット管理アプリを構築しているので、それに応じてヘッダー テキストを変更する必要があります。 次の手順を実行して、アプリケーション コードを更新し、azd
を使って変更を再デプロイします。
テンプレートの
src/web/src/layout
ディレクトリでheader.tsx
ファイルを見つけます。 Visual Studio Code を使用している場合は、ctrl + p
ショートカットを使ってheader.tsx
ファイルを直接検索することもできます。42 行目あたりにあるヘッダーの表示テキストを、
Todo
からTicket Manager
に変更し、変更を保存します。<Stack horizontal styles={logoStyles}> <FontIcon aria-label="Check" iconName="SkypeCircleCheck" className={logoIconClass} /> <Text variant="xLarge">Ticket Manager</Text> </Stack>
ディレクトリのルートに設定されたコマンド プロンプト ウィンドウで、
azd deploy
コマンドを実行します。azd
によってコードが再デプロイされるまで、しばらく待ちます。azd deploy
コマンドが完了したら、ブラウザーで再度アプリにアクセスします。 ヘッダーの左上のテキストが Ticket Manager になっているはずです。
Azure リソースを更新する
あなたのチームでは、ユーザーがチケットを使ってファイルをアップロードする機能を追加する予定です。たとえば、発生している問題の画像やスクリーンショット、その他のサービス ドキュメントなどです。 これらのファイルを保持する Azure Storage アカウントを環境に追加する必要があります。 また、このテンプレートが将来の環境にプロビジョニングされたときに、初期セットアップ中にこのストレージ アカウントが含まれるようにする必要もあります。 次の手順を使用して、テンプレートのコード ファイルとしてのインフラストラクチャを変更することで、これらの要件を満たすことができます。
テンプレートのルートにある
infra
フォルダーで、main.bicep
ファイルを開きます。このテンプレートにはストレージ アカウントを作成するための再利用可能な Bicep モジュールが既に含まれているため、それを使って独自のものを追加できます。
main.bicep
ファイルの最後の 180 行目あたりにある、出力変数を定義している箇所の上に、次のコード スニペットを貼り付けます。module storage './core/storage/storage-account.bicep' = { name: 'storage' scope: rg params: { name: '${abbrs.storageStorageAccounts}${resourceToken}' location: location tags: tags } }
変更内容を保存し、
azd provision
コマンドを実行します。azd provision
を実行すると、テンプレートのコード ファイルとしてのインフラストラクチャを使って Azure 環境が更新されますが、アプリのソース コードは再デプロイされません。azd provision
コマンドが完了したら、コンソールに出力される URL に従って、ブラウザーで Azure portal を起動します。 最初にプロビジョニングしたすべてのリソースを保持するリソース グループが表示され、新しいストレージ アカウントが含まれているはずです。
注意
azd
を使う場合は、コード ファイルとしてのインフラストラクチャがべき等であること、つまり、何回実行しても目的の終了状態は変わらないことに注意してください。 Bicep または Terraform では、Azure に変更を適用して環境がインフラストラクチャ ファイルの状態と一致するようにしますが、既に目的の状態に一致しているリソースに対しては変更は適用されません。