演習 - Azure DevOps で IoT Edge 用の CI パイプラインを作成する

完了

Azure リソースを作成します

Azure DevOps Projects では、Azure DevOps で CI/CD パイプラインが作成されます。 最初に、モジュールに使用されるクラウド サービスを作成する必要があります。

  1. Microsoft Azure ポータルにサインインします。

  2. [Azure に配置する] を選択します。 [カスタム デプロイ] パネルが表示されます。

    Azure にデプロイ。

  3. [基本] タブで、各設定に対して次の値を入力します。

    設定 [値]
    デプロイのスコープ
    サブスクリプション サブスクリプションを選択します。
    Resource group ドロップダウンから名前を選択するか、[新規作成] リンクを選択し、[名前] テキスト ボックスに名前を入力します。
    パラメーター
    リージョン リソース グループと同じリージョンを選択します
    リソース名のサフィックス グローバルに一意な値を入力します
  4. [確認および作成] を選択し、[作成] を選択して Azure にリソースをデプロイします。

    Note

    デプロイで問題が発生する場合は、作成したリソース グループ (ある場合) を削除し、[Resource Name Suffix](リソース名のサフィックス) パラメーターに新しい値を使用して再試行することをお勧めします。

  5. デプロイが正常に完了したら、[リソース グループに移動] を選択してリソースを確認します。

Azure DevOps プロジェクトを作成する

  1. Azure DevOps 組織がない場合は、手順に従って無料で作成する必要があります。

    1. Azure Pipelines を開き、[無料で開始する] を選択します。
    2. Microsoft にサインインまたはサイン アップします。
    3. 組織の名前を指定して作成します。
  2. [Azure DevOps] ページの右上隅にある [新しいプロジェクト] を選択します。 [新しいプロジェクトの作成] ペインが表示されます。

  3. [プロジェクト名] テキスト ボックスに、プロジェクト名を入力します。

  4. [説明] テキスト ボックスに、新しいプロジェクトについての説明テキストを入力します。

  5. [表示] で、プライベートまたはパブリックを選択します。

  6. [作成] を選択します プロジェクトのウェルカム ページが表示されます。

  7. 左側のメニュー ペインで [リポジトリ] を選択し、[リポジトリをインポートする] ボックスで [インポート] を選択します。 [Git リポジトリをインポートする] ペインが表示されます。

  8. [クローン URL] フィールドにこの URL を入力し、[インポート] を選択します。

    https://github.com/MicrosoftDocs/mslearn-oxford-implement-cicd-iot-edge.git
    

CI パイプラインを作成する

このリポジトリには、azure-pipelines.yml に含まれる EdgeSolution をビルドするために既に構成されている Azure DevOps ビルド定義が含まれています。 このビルド定義は、Replace Tokens という外部プラグインに依存しています。

  1. まず、このリンクにアクセスし、[無料で入手] を選択して、Visual Studio Marketplace から [トークンの置換] タスクをインストールします。 次に、[インストール] を選択して、新しく作成された Azure DevOps プロジェクトを含む組織にトークンをインストールします。

  2. このタスクが正常にインストールされたら、Azure DevOps プロジェクトに戻り、[リポジトリ]>[ファイル] を選択します。 編集アイコンを選択して .azure-pipelines.yml ファイルを編集します。

  3. 以下に示すように、次のステートメントをファイルの先頭に追加します。

    # This repository is built using Azure DevOps.
    

    Azure パイプラインの編集方法を示す図。

  4. [コミット] を選択して、変更をコミットします。 [コミット] ペインが表示されます。 [コミット] を選択します。

  5. [ファイル] パネルに戻ります。

  6. 右上隅にある [ビルドのセットアップ] を選択し、[実行] を選択します。 ビルド定義を編集すると、ビルドが開始されたことがわかります。

  7. 左側のメニュー ペインで、[パイプライン] を選択します。 ビルドが失敗することがわかります。 Azure DevOps によってスペースを含む名前でビルド定義が作成され、これは [Azure IoT Edge - Build module images](Azure IoT Edge - モジュール イメージをビルドする) タスクと競合するため、これは予想されることです。

  8. これを修正するには、[パイプライン] を選択します。 [パイプライン] パネルが表示されます。

  9. [最近実行したパイプライン] の右端で、パイプラインの垂直の省略記号を選択し、[名前の変更/移動] を選択します。 [パイプラインの名前変更または移動] ダイアログが表示されます。 [名前] テキスト ボックスで、新しく作成されたビルド定義の名前を変更し、スペースが含まれないようにします。 [保存] を選択します。

    ビルド失敗の修正方法が示されている図。

ビルド定義変数を作成する

  1. ビルドを正常に実行するには、ビルド変数を追加する必要があります。 次のものを取得する必要があります。

    • acr.host としての Azure Container Registry ログイン サーバー名
    • Azure Container Registry ユーザー名 acr.user
    • Azure Container Registry パスワード acr.password
  2. Azure portal に移動し、このモジュール用に作成したリソース グループに移動します。

  3. [Container Registry] リソースを選択します。

  4. 左側のメニュー ウィンドウの [設定] で、[アクセス キー] を選択します。

  5. [レジストリ名][ログイン サーバー][ユーザー名][パスワード] をコピーします。

    Container Registry のアクセス キーを示す図。

  6. appinsights.instrumentationkey によって表される Application Insights のインストルメンテーション キーを取得します。 Azure portal に移動し、このモジュール用に作成したリソース グループに移動します。

  7. 左側のメニュー ペインで、[概要] を選択します。 [リソース] タブで、Application Insights リソースを選択します。

  8. [要点] セクションで、[インストルメンテーション キー] をコピーします。

    Application Insights のインストルメンテーション キーを示す図。

  9. Azure DevOps プロジェクトに戻り、[パイプライン] に移動します。

  10. 前に実行したパイプラインで、右端にある垂直の省略記号を選択し、[編集] を選択します。

  11. 右上で、[変数] を選択します。 [新しい変数] ウィンドウが表示されます。

    パイプラインへの新しい変数の追加を示す図。

  12. Azure portal からコピーした値を使用して、4 つの変数 acr.hostacr.useracr.passwordappinsights.instrumentationkey を追加します。 各エントリの後に [OK] を選択します。 4 つの変数をすべて入力したら、[保存] を選択してから、[実行] を選択します。 [パイプラインの実行] ウィンドウが表示されます。 [実行] を選択します。

  13. [パイプライン] に戻って、パイプラインの状態を確認します。 次に示すように、ビルドが正常に完了するはずです。

    成功したビルドを示す図。

ブランチ ポリシーを適用する

  1. 正しいビルド定義ができたら、マスター ブランチにブランチ ポリシーを適用することにより、継続的インテグレーションを実施できるようになります。 左側のメニュー ウィンドウで [リポジトリ] を選択し、もう一度左側のメニュー ウィンドウで [ブランチ] を選択します。 マスター ブランチの行の右端にある垂直の省略記号を選択し、ドロップダウンから [ブランチ ポリシー] を選択します。

  2. [マスター] パネルの中央で、[ビルドの検証] を選択し、[+] アイコン ([新しいビルド ポリシーの追加]) を選択して、新しく作成したビルド パイプラインを選択します。 すべてを既定値のままにして、[保存] を選択します。

    パイプラインに追加されたブランチ ポリシーを示す図。

    このポリシーが有効な間は、機能ブランチへのすべてのコミットによって、新しく作成されたビルド パイプラインの実行が開始されます。 このような変更のプル要求をマスター ブランチに対して行うには、成功する必要があります。