このチュートリアルでは、Azure Pipelines、Cloud Run、Container Registry を使用して、ASP.NET MVC コア ウェブ アプリケーションの継続的インテグレーション/継続的デプロイ(CI/CD)パイプラインを作成する方法について説明します。
次の図に示すように、CI/CD パイプラインは、開発用と本番環境用の 2 つの Google Cloud プロジェクトを使用します。
パイプラインの開始時に、デベロッパーがサンプル コードベースへの変更を commit します。このアクションがトリガーとなり、パイプラインによってリリースが作成され、開発クラスタの Cloud Run にデプロイされます。その後リリース管理者がリリースをプロモートし、本番環境プロジェクトにデプロイします。
このチュートリアルは、デベロッパーと DevOps エンジニアを対象としています。.NET、Azure Pipelines、Cloud Run、git に関する基本的な知識があることを前提としています。このチュートリアルを完了するには、Azure DevOps アカウントに対する管理者権限が必要です。
目標
- Docker イメージを公開するために Artifact Registry を Azure Pipelines に接続する。
- Cloud Run にデプロイするための .NET サンプルアプリを準備する。
- Azure Pipelines と Google Cloud間の認証を設定します。
- Azure Pipelines リリース管理を使用して Cloud Run のデプロイをオーケストレートする。
費用
このドキュメントでは、課金対象である次の Google Cloudコンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
Azure DevOps の使用によって生じる費用については、Azure DevOps の料金ページをご覧ください。
始める前に
このチュートリアルでは、開発用と本番環境用の 2 つの個別のプロジェクトを使用します。個別のプロジェクトを使用することで、リリースを本番環境にデプロイする前にテストできます。また、Identity and Access Management(IAM)のロールと権限を個別に管理することもできます。
- 開発用の Google Cloud プロジェクトを作成します。このチュートリアルでは、このプロジェクトを開発プロジェクトと呼びます。
- 本番環境用の Google Cloud プロジェクトを作成します。このチュートリアルでは、このプロジェクトを本番環境プロジェクトと呼びます。
-
Verify that billing is enabled for your Google Cloud project.
- Azure DevOps アカウントがあり、そのアカウントに対する管理者権限があることを確認します。まだ Azure DevOps アカウントがない場合は、Azure DevOps ホームページで登録できます。
Azure DevOps プロジェクトを作成する
Azure DevOps を使用して、ソースコードの管理、ビルドとテストの実行、Cloud Run へのデプロイのオーケストレートを行います。はじめに、Azure DevOps アカウントでプロジェクトを作成します。
- Azure DevOps ホームページ(https://dev.azure.com/YOUR_AZURE_DEVOPS_ACCOUNT_NAME)に移動します。
- [New Project] をクリックします。
CloudDemoなどのプロジェクト名を入力します。- [Visibility] を [Private] に設定してから、[Create] をクリックします。
- プロジェクトを作成したら、左側のメニューで [Repos] をクリックします。
- [Import] をクリックして GitHub から
dotnet-docs-samplesリポジトリを fork し、次の値を設定します。- Repository type:
Git - Clone URL:
https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
- Repository type:
[Import] をクリックします。
インポート処理が完了すると、
dotnet-docs-samplesリポジトリのソースコードが表示されます。
Azure Pipelines を Artifact Registry に接続する
CloudDemo アプリの継続的インテグレーションを設定する前に、Azure Pipelines を Artifact Registry に接続する必要があります。この接続により、Azure Pipelines はコンテナ イメージを Artifact Registry に公開できます。
イメージを公開するためのサービス アカウントを設定する
本番環境プロジェクトに Google Cloud サービス アカウントを作成します。
- Google Cloud コンソールで、本番環境プロジェクトに切り替えます。
-
In the Google Cloud console, activate Cloud Shell.
次の環境変数を初期化します。
DEV_PROJECT_ID=DEV_PROJECT_ID PROD_PROJECT_ID=PROD_PROJECT_ID
以下を置き換えます。
DEV_PROJECT_ID: 開発プロジェクトのプロジェクト IDPROD_PROJECT_ID: 本番環境プロジェクトのプロジェクト ID
本番環境プロジェクトで Artifact Registry API を有効にします。
gcloud services enable artifactregistry.googleapis.com \ --project=$PROD_PROJECT_IDDocker イメージを保存する Artifact Registry リポジトリを作成します。
gcloud artifacts repositories create docker \ --project=$PROD_PROJECT_ID \ --repository-format=docker \ --location REGIONREGIONは、Artifact Registry リポジトリのリージョン(us-central1など)に置き換えます。Azure Pipelines が Docker イメージの公開に使用するサービス アカウントを作成します。
gcloud iam service-accounts create azure-pipelines-publisher \ --display-name="Azure Pipelines Publisher" \ --project=$PROD_PROJECT_IDサービス アカウントに Artifact Registry 書き込みロール(
roles/artifactregistry.writer)を付与して、Azure Pipelines が Artifact Registry に push できるようにします。AZURE_PIPELINES_PUBLISHER=azure-pipelines-publisher@$PROD_PROJECT_ID.iam.gserviceaccount.com gcloud projects add-iam-policy-binding $PROD_PROJECT_ID \ --member serviceAccount:$AZURE_PIPELINES_PUBLISHER \ --role roles/artifactregistry.writer \ --project=$PROD_PROJECT_IDサービス アカウント キーを生成します。
gcloud iam service-accounts keys create azure-pipelines-publisher.json \ --iam-account $AZURE_PIPELINES_PUBLISHER \ --project=$PROD_PROJECT_ID tr -d '\n' < azure-pipelines-publisher.json > azure-pipelines-publisher-oneline.jsonサービス アカウント キーファイルの内容を表示します。
echo $(<azure-pipelines-publisher-oneline.json)次の手順のいずれかでサービス アカウント キーが必要になります。
- Azure の [DevOps] メニューで、[Project settings] を選択してから、[Pipelines] > [Service connections] の順に選択します。
- [Create service connection] をクリックします。
- リストから [Docker Registry] を選択し、[Next] をクリックします。
ダイアログの以下のフィールドに値を入力します。
- Registry type: Others
Docker Registry:
https://REGION-docker.pkg.dev/PROD_PROJECT_ID/docker/次のように置き換えます。
REGION: Artifact Registry リポジトリのリージョンPROD_PROJECT_ID: 本番環境プロジェクトの名前
Docker ID:
_json_keyPassword:
azure-pipelines-publisher-oneline.jsonの内容を貼り付けます。Service connection name:
gcr-tutorial
[Save] をクリックして接続を作成します。
- Visual Studio またはコマンドライン
gitクライアントを使用して、新しい Git リポジトリのクローンを作成します。 - リポジトリのルートで、
azure-pipelines.ymlという名前のファイルを作成します。 次のコードをファイルにコピーします。
resources: - repo: self fetchDepth: 1 pool: vmImage: ubuntu-22.04 trigger: - master variables: TargetFramework: 'net6.0' BuildConfiguration: 'Release' DockerImageName: 'PROD_PROJECT_ID/docker/CloudDemo' steps: - task: DotNetCoreCLI@2 displayName: Publish inputs: projects: 'applications/clouddemo/netcore/CloudDemo.MvcCore.sln' publishWebProjects: false command: publish arguments: '--configuration $(BuildConfiguration) --framework=$(TargetFramework)' zipAfterPublish: false modifyOutputPath: false - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact' inputs: PathtoPublish: '$(build.artifactstagingdirectory)' - task: Docker@2 displayName: 'Login to Container Registry' inputs: command: login containerRegistry: 'gcr-tutorial' - task: Docker@2 displayName: 'Build and push image' inputs: Dockerfile: 'applications/clouddemo/netcore/Dockerfile' command: buildAndPush repository: '$(DockerImageName)'
PROJECT_IDを本番環境プロジェクトの名前に置き換えて、ファイルを保存します。Cloud Run は Linux ベースの環境であるため、パイプラインは Linux ベースのビルド エージェントを使用します。
変更を commit し、Azure Pipelines に push します。
Visual Studio
- チーム エクスプローラーを開き、[Home] アイコンをクリックします。
- [変更] をクリックします。
- 「
Add pipeline definition」といった Commit メッセージを入力します。 - [すべてをコミットしてプッシュ] をクリックします。
コマンドライン
変更されたすべてのファイルをステージングします。
git add -Aローカル リポジトリへの変更を commit します。
git commit -m "Add pipeline definition"Azure DevOps への変更を push します。
git push
Azure DevOps のメニューで、[Pipelines] を選択して、[Create Pipeline] をクリックします。
[Azure Reposs Git] を選択します。
リポジトリを選択します。
[Review your pipeline YAML] ページで、[Run] をクリックします。
新しいビルドがトリガーされます。ビルドが完了するまでに 2 分ほどかかる場合があります。
イメージが Artifact Registry に公開されたことを確認するには、 Google Cloud コンソールで本番環境プロジェクトに切り替えて、[Artifact Registry] > [docker] の順に選択し、[CloudDemo] をクリックします。
1 つのイメージと、そのイメージのタグが表示されます。このタグは、Azure Pipelines で実行されたビルドの数値 ID に対応しています。
- リリースは、通常はビルドプロセスの結果からなる、アプリの特定のバージョンを形成するアーティファクト群である。
- デプロイは、リリースを特定の環境に導入する過程である。
- デプロイによって一連のタスクが実行される。タスクはジョブでグループ化できる。
- ステージによってパイプラインを分割でき、ステージを使用することで、開発環境やテスト環境などの複数の環境へのデプロイをオーケストレートできる。
Cloud Shell を開きます。
次の環境変数を初期化します。
DEV_PROJECT_ID=DEV_PROJECT_ID PROD_PROJECT_ID=PROD_PROJECT_ID
以下を置き換えます。
DEV_PROJECT_ID: 開発プロジェクトのプロジェクト IDPROD_PROJECT_ID: 本番環境プロジェクトのプロジェクト ID
開発プロジェクトと本番環境プロジェクトの両方で Cloud Run API と Compute Engine API を有効にします。
gcloud services enable run.googleapis.com --project=$DEV_PROJECT_ID gcloud services enable run.googleapis.com --project=$PROD_PROJECT_IDこれらの API を有効にすると、Cloud Run サービス エージェント アカウントがプロジェクトに作成されます。
2 つの Cloud Run サービス エージェント アカウントに、Docker イメージが格納されている本番環境プロジェクトの Artifact Registry へのアクセス権を付与します。
DEV_PROJECT_NUMBER=$(gcloud projects describe $DEV_PROJECT_ID \ --format='value(projectNumber)') PROD_PROJECT_NUMBER=$(gcloud projects describe $PROD_PROJECT_ID \ --format='value(projectNumber)') gcloud projects add-iam-policy-binding $PROD_PROJECT_ID \ --member=serviceAccount:service-$DEV_PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com \ --role roles/artifactregistry.reader gcloud projects add-iam-policy-binding $PROD_PROJECT_ID \ --member=serviceAccount:service-$PROD_PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com \ --role roles/artifactregistry.readerCloudDemo-runnerという名前のサービス アカウントを作成します。gcloud iam service-accounts create clouddemo-runner \ --display-name="CloudDemo Runner" \ --project=$DEV_PROJECT_ID gcloud iam service-accounts create clouddemo-runner \ --display-name="CloudDemo Runner" \ --project=$PROD_PROJECT_ID DEV_CLOUDDEMO_RUNNER=clouddemo-runner@$DEV_PROJECT_ID.iam.gserviceaccount.com PROD_CLOUDDEMO_RUNNER=clouddemo-runner@$PROD_PROJECT_ID.iam.gserviceaccount.comazure-pipelines-deployerという名前のサービス アカウントを作成します。gcloud iam service-accounts create azure-pipelines-deployer \ --display-name="Azure Pipelines Deployer" \ --project=$PROD_PROJECT_ID AZURE_PIPELINES_DEPLOYER=azure-pipelines-deployer@$PROD_PROJECT_ID.iam.gserviceaccount.com必要な IAM ロールを割り当てて、新しい Cloud Run サービスまたはリビジョンを開発プロジェクトにデプロイします。
gcloud projects add-iam-policy-binding $DEV_PROJECT_ID \ --member serviceAccount:$AZURE_PIPELINES_DEPLOYER \ --role roles/run.admin gcloud iam service-accounts add-iam-policy-binding \ $DEV_CLOUDDEMO_RUNNER \ --member=serviceAccount:$AZURE_PIPELINES_DEPLOYER \ --role="roles/iam.serviceAccountUser" \ --project=$DEV_PROJECT_ID本番環境プロジェクトに同じ一連のロールを割り当てます。
gcloud projects add-iam-policy-binding $PROD_PROJECT_ID \ --member serviceAccount:$AZURE_PIPELINES_DEPLOYER \ --role roles/run.admin gcloud iam service-accounts add-iam-policy-binding \ $PROD_CLOUDDEMO_RUNNER \ --member=serviceAccount:$AZURE_PIPELINES_DEPLOYER \ --role="roles/iam.serviceAccountUser" \ --project=$PROD_PROJECT_IDサービス アカウント キーを生成します。
gcloud iam service-accounts keys create azure-pipelines-deployer.json \ --iam-account=$AZURE_PIPELINES_DEPLOYER \ --project=$PROD_PROJECT_ID cat azure-pipelines-deployer.json | base64 -w 0このコマンドの出力は、リリース パイプラインを構成するときに使用します。
- 開発環境にデプロイする。
- 本番環境へのデプロイを開始する前に、手動承認をリクエストする。
- 本番環境にデプロイする。
- Azure DevOps のメニューで、[Pipelines] > [Releases] の順に選択します。
- [New pipeline] をクリックします。
- テンプレートのリストから [Empty job] を選択します。
- ステージの名前の入力を求められたら、「
Development」と入力します。 - 画面の上部で、パイプラインに
CloudDemoという名前を付けます。 - パイプライン図で、[Artifacts] の横にある [Add] をクリックします。
- [Build] を選択して、次の設定を追加します。
- Source type: ビルド
- Source (build pipeline): ビルド定義を選択します(選択肢は 1 つだけです)
- Default version: Latest
- Source alias:
build
- [Add] をクリックします。
- [Artifact] ボックスで [Continuous deployment trigger](稲妻のアイコン)をクリックしてデプロイ トリガーを追加します。
- [Continuous deployment trigger] で、スイッチを [Enabled] に設定します。
- [Save] をクリックします。
必要に応じてコメントを入力し、[OK] をクリックして確定します。
パイプラインは次のようになります。
- メニューで [Agent job] タブに切り替えます。
- [Agent job] をクリックします。
- [エージェントの仕様] を [ubuntu-22.04] に設定します。
- [Agent job] の横の [Add a task to agent job] をクリックして、フェーズにステップを追加します。
- [Command line] タスクを選択し、[Add] をクリックします。
新たに追加したタスクをクリックし、以下の設定を構成します。
- Display name:
Deploy image to development project Script:
gcloud auth activate-service-account \ --quiet \ --key-file <(echo $(ServiceAccountKey) | base64 -d) && \ gcloud run deploy clouddemo \ --quiet \ --service-account=clouddemo-runner@$(CloudRun.ProjectId.Development).iam.gserviceaccount.com \ --allow-unauthenticated \ --image=$(CloudRun.Region)-docker.pkg.dev/$(ContainerRegistry.ProjectId)/docker/clouddemo:$BUILD_BUILDID \ --platform=managed \ --region=$(CloudRun.Region) \ --project=$(CloudRun.ProjectId.Development)このコマンドは、環境変数からサービス アカウント キーを取得し、gcloud CLI を使用してアプリケーションを Cloud Run にデプロイします。デフォルトでは、Azure Pipelines エージェントで gcloud CLI を使用できます。
- Display name:
[変数] タブに切り替えて、次の変数を追加します。
Name Value Secret ServiceAccountKey前に azure-pipelines-deployer用に作成されたサービス アカウント キー。○ ContainerRegistry.ProjectId本番環境プロジェクトのプロジェクト ID。 CloudRun.RegionArtifact Registry リソースをデプロイする前に選択したリージョン。 CloudRun.ProjectId.Development開発プロジェクトのプロジェクト ID。 CloudRun.ProjectId.Production本番環境プロジェクトのプロジェクト ID。 [Save] をクリックします。
必要に応じてコメントを入力し、[OK] をクリックして確定します。
- メニューで [Pipeline] タブに切り替えます。
- [Stages] ボックスで、[Add] > [New stage] の順に選択します。
- テンプレートのリストから [Empty job] を選択します。
- ステージの名前の入力を求められたら、「
Production」と入力します。 - 新たに作成したステージの稲妻のアイコンをクリックします。
以下の設定を構成します。
- Select trigger: After stage
- Stages: Development
- Pre-deployment approvals: (有効)
- Approvers: ユーザー名を選択します。
パイプラインに次のようなビューが表示されます。
[Tasks] タブに切り替えます。
[Tasks] タブにカーソルを合わせ、[Tasks] > [Production] の順に選択します。
[Agent job] をクリックします。
[エージェントの仕様] を [ubuntu-22.04] に設定します。
[Add a task to agent job] をクリックして、フェーズにステップを追加します。
[Command line] タスクを選択し、[Add] をクリックします。
新たに追加したタスクをクリックし、以下の設定を構成します。
- Display name:
Deploy image to production project Script:
gcloud auth activate-service-account \ --quiet \ --key-file <(echo $(ServiceAccountKey) | base64 -d) && \ gcloud run deploy clouddemo \ --quiet \ --service-account=clouddemo-runner@$(CloudRun.ProjectId.Production).iam.gserviceaccount.com \ --allow-unauthenticated \ --image=$(CloudRun.Region)-docker.pkg.dev/$(ContainerRegistry.ProjectId)/docker/clouddemo:$BUILD_BUILDID \ --platform=managed \ --region=$(CloudRun.Region) \ --project=$(CloudRun.ProjectId.Production)
- Display name:
[Save] をクリックします。
必要に応じてコメントを入力し、[OK] をクリックして確定します。
- ローカルのパソコンで、先ほどクローンを作成した Git リポジトリからファイル
applications\clouddemo\netcore\CloudDemo.MvcCore\Views\Home\Index.cshtmlを開きます。 ViewBag.Titleの値をHome PageからHome Page Cloud Runに変更します。変更を commit し、Azure Pipelines に push します。
Visual Studio
- チーム エクスプローラーを開き、[Home] アイコンをクリックします。
- [変更] をクリックします。
- 「
Change site title」といった Commit メッセージを入力します。 - [すべてをコミットしてプッシュ] をクリックします。
コマンドライン
変更されたすべてのファイルをステージングします。
git add -Aローカル リポジトリへの変更を commit します。
git commit -m "Change site title"変更を Azure Pipelines に push します。
git push
Azure DevOps のメニューで [Pipelines] を選択します。ビルドがトリガーされます。
ビルドが完了したら、[Pipelines] > [Releases] の順に選択します。リリース プロセスが開始されます。
[Release-1] をクリックして詳細ページを開き、Development ステージのステータスが [Succeeded] に切り替わるのを待ちます。
Google Cloud コンソールで、開発プロジェクトに切り替えます。
メニューで、[Compute] > [Cloud Run] の順に選択します。
clouddemo サービスが正常にデプロイされます。
clouddemo をクリックして詳細を表示します。
Cloud Run がサービスをプロビジョニングしたことを示す URL が表示されます。
新しいブラウザタブで URL を開き、CloudDemo アプリがデプロイされ、カスタム タイトルが使用されていることを確認します。
Azure Pipelines で [Approve]([Production] ステージに隣接している)をクリックして、本番環境へのデプロイをプロモートします。
(省略可)コメントを入力します。
[Approve] をクリックして確定し、Production環境のステータスが [Succeeded] に切り替わるのを待ちます。
Google Cloud コンソールで、本番環境プロジェクトに切り替えます。
メニューで、[Compute] > [Cloud Run] の順に選択します。
clouddemo サービスが本番環境プロジェクトにデプロイされます。
clouddemo をクリックして詳細を表示します。
Cloud Run によってサービスがプロビジョニングされたことを示す URL が表示されます。
新しいブラウザタブで URL を開き、CloudDemo アプリが本番環境にデプロイされ、カスタム タイトルが使用されていることを確認します。
Artifact Registry 用のサービス接続を作成する
Azure Pipelines で、Artifact Registry 用の新しいサービス接続を作成します。
継続的なビルド
この段階で Azure Pipelines を使用して継続的インテグレーションを設定できます。commit によって Git リポジトリへの push を行うたびに、Azure Pipelines によってコードがビルドされ、そのビルドのアーティファクトが Docker コンテナにパッケージ化されます。そのコンテナは Artifact Registry に公開されます。
リポジトリには、すでに次の Dockerfile が含まれています。
YAML 構文を使用する新しいパイプラインを作成します。
継続的デプロイ
commit するたびに Azure Pipelines で自動的にコードのビルドと Docker イメージの公開が実施されるようになったら、デプロイするための操作に移行できます。
他の継続的インテグレーション システムとは異なり、Azure Pipelines ではビルドとデプロイが区別され、デプロイ関連のすべてのタスクに、リリース管理というラベルが付けられた専用のツールセットが提供されます。
Azure Pipelines リリース管理は、次のコンセプトに基づいて構築されています。
新しくビルドが完了すると、必ずリリース パイプラインがトリガーされるように設定します。パイプラインは、開発と本番環境の 2 つのステージで構成されています。各ステージでリリース パイプラインは、ビルド パイプラインが生成する Docker イメージを使用して Cloud Run にデプロイします。
前もって構成しておいたビルド パイプラインは、Docker イメージを Artifact Registry に公開する前に、ビルド ID でタグ付けします。これにより、リリース パイプラインでは、$BUILD_BUILDID 変数を使用してデプロイすべき Docker イメージを正確に識別します。
Cloud Run を構成する
Cloud Run はフルマネージドのサーバーレス環境であるため、インフラストラクチャをプロビジョニングする必要はありません。Cloud Run のデプロイの安全性を確保できるように、IAM を設定する必要があります。
次の図に示すように、Cloud Run サービスのデプロイと実行には複数の ID が必要となります。
各 ID はサービス アカウントとして実装され、次の表で示すように、特定の目的で使用されます。
| サービス アカウント | 使用元 | 目的 | 必要なロール |
|---|---|---|---|
| Azure Pipelines Publisher | ビルド パイプライン | Docker イメージを Artifact Registry に公開する | roles/artifactregistry.writer(本番環境プロジェクト専用) |
| Azure Pipelines Deployer | リリース パイプライン | Cloud Run のデプロイを開始する | roles/run.admin |
| CloudDemo サービスを起動する | roles/iam.serviceAccountUser |
||
| Cloud Run サービス エージェント | Cloud Run | Artifact Registry から Docker イメージを pull する | roles/artifactregistry.reader(本番環境プロジェクト専用) |
| CloudDemo ランナー(ランタイム サービス アカウント) | CloudDemo サービス | Google Cloudのリソースにアクセスする | なし |
Azure Pipelines Publisher のサービス アカウントの作成と構成を行いました。以下のセクションでは、残りのサービス アカウントの作成と構成を行います。
Cloud Run サービス アカウントを構成する
CloudDemo ランナー アカウントを構成する
これで、CloudDemo ランナー アカウント(CloudDemo サービスのカスタム ランタイム サービス アカウント)を構成できるようになりました。
Azure Pipelines Deployer アカウントを構成する
最後に、Azure リリース パイプラインが Cloud Run へのデプロイに使用する Azure Pipelines Deployer アカウントの作成と構成を行います。
リリース パイプラインを構成する
この段階で、Azure Pipelines に戻ってデプロイを自動化できます。デプロイには次の手順が含まれます。
リリース定義を作成する
まず、リリース定義を作成します。
開発プロジェクトにデプロイする
リリース定義を作成したら、開発プロジェクトへの Cloud Run デプロイを構成できるようになります。
本番環境クラスタにデプロイする
最後に、本番環境プロジェクトへのデプロイを構成します。
パイプラインを実行する
パイプライン全体の構成が済んだら、ソースコードを変更してパイプラインをテストできます。
クリーンアップ
このチュートリアルの完了後に請求が発生しないようにするには、作成したエンティティを削除します。
Azure Pipelines プロジェクトの削除
Azure Pipelines プロジェクトを削除するには、Azure DevOps Services のドキュメントをご覧ください。Azure Pipelines プロジェクトを削除すると、すべてのソースコードの変更が失われます。
Google Cloud 開発プロジェクトと本番環境プロジェクトを削除する
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
次のステップ
- Cloud Run サービスのカスタム ドメインを構成する。
- Azure Pipelines を使用して Google Kubernetes Engine に同じアプリをデプロイする方法を確認する。
- Google Cloudへの Deploying .NET アプリのデプロイについて詳細を確認する。
- Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud アーキテクチャ センターをご覧ください。