演習 - Azure DevOps で IoT Edge 用の CI パイプラインを作成する
Azure リソースを作成します
Azure DevOps Projects では、Azure DevOps で CI/CD パイプラインが作成されます。 最初に、モジュールに使用されるクラウド サービスを作成する必要があります。
Microsoft Azure ポータルにサインインします。
[Azure に配置する] を選択します。 [カスタム デプロイ] パネルが表示されます。
[基本] タブで、各設定に対して次の値を入力します。
設定 [値] デプロイのスコープ サブスクリプション サブスクリプションを選択します。 Resource group ドロップダウンから名前を選択するか、[新規作成] リンクを選択し、[名前] テキスト ボックスに名前を入力します。 パラメーター リージョン リソース グループと同じリージョンを選択します リソース名のサフィックス グローバルに一意な値を入力します [確認および作成] を選択し、[作成] を選択して Azure にリソースをデプロイします。
Note
デプロイで問題が発生する場合は、作成したリソース グループ (ある場合) を削除し、[Resource Name Suffix](リソース名のサフィックス) パラメーターに新しい値を使用して再試行することをお勧めします。
デプロイが正常に完了したら、[リソース グループに移動] を選択してリソースを確認します。
Azure DevOps プロジェクトを作成する
Azure DevOps 組織がない場合は、手順に従って無料で作成する必要があります。
- Azure Pipelines を開き、[無料で開始する] を選択します。
- Microsoft にサインインまたはサイン アップします。
- 組織の名前を指定して作成します。
[Azure DevOps] ページの右上隅にある [新しいプロジェクト] を選択します。 [新しいプロジェクトの作成] ペインが表示されます。
[プロジェクト名] テキスト ボックスに、プロジェクト名を入力します。
[説明] テキスト ボックスに、新しいプロジェクトについての説明テキストを入力します。
[表示] で、プライベートまたはパブリックを選択します。
[作成] を選択します プロジェクトのウェルカム ページが表示されます。
左側のメニュー ペインで [リポジトリ] を選択し、[リポジトリをインポートする] ボックスで [インポート] を選択します。 [Git リポジトリをインポートする] ペインが表示されます。
[クローン URL] フィールドにこの URL を入力し、[インポート] を選択します。
https://github.com/MicrosoftDocs/mslearn-oxford-implement-cicd-iot-edge.git
CI パイプラインを作成する
このリポジトリには、azure-pipelines.yml に含まれる EdgeSolution をビルドするために既に構成されている Azure DevOps ビルド定義が含まれています。 このビルド定義は、Replace Tokens という外部プラグインに依存しています。
まず、このリンクにアクセスし、[無料で入手] を選択して、Visual Studio Marketplace から [トークンの置換] タスクをインストールします。 次に、[インストール] を選択して、新しく作成された Azure DevOps プロジェクトを含む組織にトークンをインストールします。
このタスクが正常にインストールされたら、Azure DevOps プロジェクトに戻り、[リポジトリ]>[ファイル] を選択します。 編集アイコンを選択して
.azure-pipelines.yml
ファイルを編集します。以下に示すように、次のステートメントをファイルの先頭に追加します。
# This repository is built using Azure DevOps.
[コミット] を選択して、変更をコミットします。 [コミット] ペインが表示されます。 [コミット] を選択します。
[ファイル] パネルに戻ります。
右上隅にある [ビルドのセットアップ] を選択し、[実行] を選択します。 ビルド定義を編集すると、ビルドが開始されたことがわかります。
左側のメニュー ペインで、[パイプライン] を選択します。 ビルドが失敗することがわかります。 Azure DevOps によってスペースを含む名前でビルド定義が作成され、これは [Azure IoT Edge - Build module images](Azure IoT Edge - モジュール イメージをビルドする) タスクと競合するため、これは予想されることです。
これを修正するには、[パイプライン] を選択します。 [パイプライン] パネルが表示されます。
[最近実行したパイプライン] の右端で、パイプラインの垂直の省略記号を選択し、[名前の変更/移動] を選択します。 [パイプラインの名前変更または移動] ダイアログが表示されます。 [名前] テキスト ボックスで、新しく作成されたビルド定義の名前を変更し、スペースが含まれないようにします。 [保存] を選択します。
ビルド定義変数を作成する
ビルドを正常に実行するには、ビルド変数を追加する必要があります。 次のものを取得する必要があります。
acr.host
としての Azure Container Registry ログイン サーバー名- Azure Container Registry ユーザー名
acr.user
- Azure Container Registry パスワード
acr.password
。
Azure portal に移動し、このモジュール用に作成したリソース グループに移動します。
[Container Registry] リソースを選択します。
左側のメニュー ウィンドウの [設定] で、[アクセス キー] を選択します。
[レジストリ名]、[ログイン サーバー]、[ユーザー名]、[パスワード] をコピーします。
appinsights.instrumentationkey
によって表される Application Insights のインストルメンテーション キーを取得します。 Azure portal に移動し、このモジュール用に作成したリソース グループに移動します。左側のメニュー ペインで、[概要] を選択します。 [リソース] タブで、Application Insights リソースを選択します。
[要点] セクションで、[インストルメンテーション キー] をコピーします。
Azure DevOps プロジェクトに戻り、[パイプライン] に移動します。
前に実行したパイプラインで、右端にある垂直の省略記号を選択し、[編集] を選択します。
右上で、[変数] を選択します。 [新しい変数] ウィンドウが表示されます。
Azure portal からコピーした値を使用して、4 つの変数
acr.host
、acr.user
、acr.password
、appinsights.instrumentationkey
を追加します。 各エントリの後に [OK] を選択します。 4 つの変数をすべて入力したら、[保存] を選択してから、[実行] を選択します。 [パイプラインの実行] ウィンドウが表示されます。 [実行] を選択します。[パイプライン] に戻って、パイプラインの状態を確認します。 次に示すように、ビルドが正常に完了するはずです。
ブランチ ポリシーを適用する
正しいビルド定義ができたら、マスター ブランチにブランチ ポリシーを適用することにより、継続的インテグレーションを実施できるようになります。 左側のメニュー ウィンドウで [リポジトリ] を選択し、もう一度左側のメニュー ウィンドウで [ブランチ] を選択します。 マスター ブランチの行の右端にある垂直の省略記号を選択し、ドロップダウンから [ブランチ ポリシー] を選択します。
[マスター] パネルの中央で、[ビルドの検証] を選択し、[+] アイコン ([新しいビルド ポリシーの追加]) を選択して、新しく作成したビルド パイプラインを選択します。 すべてを既定値のままにして、[保存] を選択します。
このポリシーが有効な間は、機能ブランチへのすべてのコミットによって、新しく作成されたビルド パイプラインの実行が開始されます。 このような変更のプル要求をマスター ブランチに対して行うには、成功する必要があります。