GitHub Actions との統合
GitHub Actions は、ソフトウェア開発ワークフローを自動化するのに役立つ GitHub の機能です。 ソース コードが GitHub リポジトリに格納されている場合は、GitHub Actions でカスタム ワークフローを作成して、コード プロジェクトをビルド、テスト、パッケージ化、リリース、デプロイすることができます。
この記事では、GitHub Actions を使用して CI/CD ワークフローを作成し、Stream Analytic ジョブを Azure にデプロイする方法について説明します。 そのため、次に GitHub リポジトリを変更すると、ワークフローが自動的にトリガーされ、Stream Analytics プロジェクトが Azure にデプロイされます。
前提条件
作業を開始する前に、次の前提条件を満たしておく必要があります。
- アクティブなサブスクリプションが含まれる Azure アカウント。
- GitHub リポジトリの構成、ワークフローの作成、GitHub シークレットの構成を行う GitHub アカウント。
- PowerShell で
az
コマンドを実行します。 このガイドに従って、ローカル コンピューターに Azure コマンド ライン インターフェイス (CLI) をインストールまたは更新します。
手順 1: Stream Analytics プロジェクトを GitHub リポジトリにプッシュする
Stream Analytics プロジェクトは、Visual Studio Code (VS Code) 用の Azure Stream Analytics 拡張機能を使用して管理されています。 インストールしていない場合は、このガイドに従ってください。
Azure portal のクエリ エディターに移動し、[VS Code で開く] を選択します。
完了すると、VS Code ワークスペースに Stream Analytics プロジェクトが表示されます。
Ctrl+J キーを押して、VS Code でターミナルを開きます。 git コマンドを入力して、プロジェクトを GitHub リポジトリにプッシュします。
手順 2: GitHub でシークレットを設定する
Stream Analytics ジョブをデプロイするには、少なくとも 3 つの GitHub シークレットを作成する必要があります。 1 つは Azure 資格情報用で、残りは、入力/出力 Azure リソース用です。
GitHub リポジトリに移動し、[設定] タブを選択します。左側のメニューから [Secrets and variables](シークレットと変数) > [アクション] を選択してから、[New repository secret](新しいリポジトリ シークレット) を選択して新しいシークレットを作成します。
Azure 資格情報用のシークレットを作成します。 PowerShell を開き、次のコマンドを実行します。 次に、出力 JSON をシークレット値にコピーします。
{subscription-id} と {resource-group} をご自身の Azure リソースに置き換えます。 最新バージョンの Azure CLI をインストール済みであることを確認してください。
az login az ad sp create-for-rbac --name "myApp" --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} --json-auth
AZURE_CREDENTIALS
などのシークレット名を入力し、出力 JSON をシークレット値にコピーします。 次に、[シークレットの追加] を選択します。サービス プリンシパル シークレットで Azure ログイン アクションを使用する方法の詳細については、こちらを参照してください。
入力と出力のリソース用のシークレットを作成します。 複数の入力/出力リソースについては、Azure リソースごとにシークレットを作成する必要があります。
完了したら、GitHub リポジトリ用に少なくとも 3 つのシークレットが作成されているはずです。
手順 3: GitHub Actions を使用してワークフローを作成する
アクション タブに移動し、New workflow(新しいワークフロー)>set up a workflow yourself(ワークフローを自分でセットアップする の順に選択します。
このテンプレートを YAML ファイルにコピーし、パラメーターを編集します。
PROJECT_NAME: Stream Analytics ジョブの名前。
OUTPUT_PATH: そのままにしておきます。
TARGET_RESOURCE_GROUP: Azure リソース グループ。
LOCATION: デプロイ用の Azure リージョン。 利用可能なリージョンについては、こちらを参照してください。
OVERRIDE_PARAMETERS: Azure リソースの資格情報。 資格情報を正しく解析するには、このパラメーターを次の形式でキーと値のペアとして設定する必要があります。
# Inputs_ehinput_DataSource_SharedAccessPolicyKey # \____/ \_____/ \________/ \__________________/ # | | | # input/output name credential name
たとえば、Event Hubs の入力と Blob Storage の出力の場合、キーは次のようになります。
Inputs_ClickStream_DataSource_SharedAccessPolicyKey=${{ secrets.ASA_INPUT }} Outputs_BlobOutput_DataSource_AccountKey=${{ secrets.ASA_OUTPUT }}
Azure リソースの種類から資格情報名へのマッピングを次に示します。
リソースの種類 Credential name (資格情報名) Azure Event Hubs、Azure IoT Hub、Azure Service Bus SharedAccessPolicyKey Azure Blob Storage、Azure Cosmos DB、Azure Table Storage AccountKey Azure 関数 ApiKey Azure SQL Database、Azure Synapse Analytics Password
メイン ブランチへの変更を保存しコミットします。 次に、[アクション] に移動し、[ワークフローの実行] を選択します。 ワークフローの進行状況をモニタリングできます。
完了すると、Stream Analytics ジョブが Azure portal で実行を開始していることが確認できます。 GitHub Actions のワークフローは、次にメイン ブランチに変更をプッシュしたときに自動的にトリガーされます。
おめでとうございます。 GitHub でのワークフローの作成、および Stream Analytics プロジェクトの Azure へのデプロイが正常に完了しました。 このワークフローを使用すると、GitHub リポジトリのメイン ブランチに変更をプッシュするたびに、Stream Analytics プロジェクトに対してビルド、テスト、発行、Azure へのデプロイを自動的に行うことができます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示