Azure Machine Learning を DevOps ツールと統合する
機械学習プロジェクトでデータ サイエンス チームと協力しているとします。 チームは、Azure DevOps または GitHub を使用して作業の計画、コード リポジトリの格納、ワークフローの自動化を選択できます。
どちらのツール セットでも、一般的に次の 2 つの役割があります。
- 管理者: DevOps 環境を設定し、ツールを管理します。
- エンド ユーザー: 開発で共同作業を行うことで、プロジェクトに貢献します。 ツールに接続しますが、DevOps 環境の構成へのアクセスは制限されています。
管理者は、Azure Machine Learning を Azure DevOps または GitHub に接続する責任があります。 Azure Machine Learning との統合がどのように設定されているかを理解するために、管理者が Azure DevOps と GitHub を Azure Machine Learning と安全に接続する方法について説明します。
Azure DevOps を設定する
Azure DevOps と Azure Machine Learning を接続するには、まず、組織とプロジェクトを作成する必要があります。 組織を使用して、プロジェクトのグループ化と管理を行います。
まず、Microsoft または GitHub アカウントを使用して Azure DevOps にサインインします。
サインインしたら、 組織を作成できます。
組織内で、複数の プロジェクトを作成できます。
プロジェクトごとに、 Boards、 Repos、 Pipelines などのツールにアクセスして、プロジェクトに DevOps の原則を適用できます。
Azure DevOps を Azure Machine Learning に接続する
Azure DevOps から Azure Machine Learning ワークスペースに安全にアクセスするには、 サービス接続を作成する必要があります。
サービス接続を作成するときに、Azure DevOps を認証して別のサービスに接続する方法を定義します。 Azure Machine Learning を使用する場合は、Azure DevOps でサービス プリンシパルを作成できるようにすることをお勧めします。
サービス プリンシパルは、Microsoft Entra ID の ID として作成されます。 Azure DevOps は、チーム メンバーの資格情報を使用して Azure Machine Learning に接続する代わりに、サービス プリンシパルの資格情報を使用します。
Azure DevOps プロジェクトが作成されたら、既存の Azure Machine Learning ワークスペースに接続できます。
- プロジェクト内で、[プロジェクト の設定] に移動します。
- サービス接続を選択し、新しい接続を作成します。
- [Azure Resource Manager] を選択します。
- 自動サービス プリンシパルを使用して認証することを選択します。
- スコープ レベルを Machine Learning ワークスペース に設定し、アクセスできる既存の Azure Machine Learning ワークスペースに接続します。
- すべてのパイプラインにアクセス許可を付与します。
- サービス接続に名前を付けます。 Azure Machine Learning ワークスペースを管理するために Azure DevOps を認証する必要がある場合は常に、この名前を使用します。
サービス接続が作成されると、新しく作成されたサービス プリンシパルに Azure Machine Learning ワークスペースへの 共同作成者 アクセス権があることがわかります。
GitHub を設定する
GitHub を Azure Machine Learning に接続するには、まず GitHub リポジトリを作成する必要があります。
まず 、GitHub にサインインします。
GitHub にサインインした後は、リポジトリを個人として所有するか、GitHub 組織が所有するかを選択できます。
ヒント
GitHub 組織を使用してリポジトリを管理する方法の詳細について説明します。
GitHub と Azure Machine Learning の接続
GitHub を使用して機械学習ワークフローを自動化するには、GitHub を認証して Azure Machine Learning に接続できます。 セキュリティで保護された接続を設定するには、次の手順を実行する必要があります。
- Azure でサービス プリンシパルを作成します。
- サービス プリンシパルの資格情報をリポジトリのシークレットに追加します。
サービス プリンシパルを作成するには、 Azure CLI を使用します。 CLI を使用するには、 Azure Cloud Shell でコマンドを送信する方法があります。
次のコマンドを使用して、Azure Machine Learning ワークスペースへのgithub-aml-spアクセス権が付与される という名前のサービス プリンシパルを作成できます。
az ad sp create-for-rbac --name "github-aml-sp" --role contributor \
--scopes /subscriptions/<subscription-id>/resourceGroups/<group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name> \
--sdk-auth
サービス プリンシパルが作成されると、GitHub が Azure リソース グループに接続するために必要な資格情報を含む JSON テキストが出力として返されます。 JSON テキストをコピーし、次の手順のために保存します。
これらの資格情報を GitHub に格納するには:
- リポジトリの [設定] に移動します。
- [シークレット] ページに移動します。
- [アクション] を選択します。
- 新しい リポジトリ シークレットを追加します。
- 名前として「
AZURE_CREDENTIALS」と入力します。 - 資格情報を含む出力 JSON を貼り付け、シークレットを追加します。
シークレットが GitHub に追加されたら、Azure Machine Learning ワークスペースを操作するために GitHub を認証する必要がある場合は常に、 AZURE_CREDENTIALS シークレットを使用できます。
ヒント
GitHub と Azure Machine Learning の統合に関する学習を続け、 Azure Machine Learning で GitHub Actions を使用する方法について説明します。 このチュートリアルでは、 AZURE_CREDENTIALS シークレットを使用して Azure に接続します。