AWS App Runner での.NET ワークロード

モジュール 3

モジュール 3:AWS App Runner での.NET ウェブ API

 ハンズオンラボ

目標

このハンズオンラボでは、DynamoDB テーブルを使用する.NET ウェブ API を作成し、それをコンテナ化し、AWS App Runner でホストします。このラボは、Windows PC、macOS、Linux コンピューター、またはクラウド内の Cloud9 環境で実行できます。

まず、DynamoDB テーブルと、それにアクセスする .NET 6 ウェブ API プロジェクトを作成します。これをローカルでテストしたら、Docker と AWS Deploy Tool for .NET CLI を使用して、ソフトウェアをコンテナ化し、Amazon Elastic Container Registry (ECR) にデプロイします。次に、アプリケーションランナーサービスと、DynamoDB との通信に必要な AWS artifacts を作成します。これには、DynamoDB の IAM ロール、VPC コネクタ、VPC エンドポイントが含まれます。アプリケーションをクラウドでテストし、アプリケーションが DynamoDB からデータを取得できることを確認します。App Runner コンソールでアプリケーションを監視し、ログを確認します。最後に、プロジェクトを更新して ECR に更新をプッシュすると、App Runner が自動的にデプロイするのを確認します。最後に、アプリケーションとそのリソースを削除します。

このラボには 12 のステップがあります。

  1. AWS のセットアップ
  2. お客様の開発環境で動作
  3. DynamoDB テーブルを作成
  4. .NET ウェブ API プロジェクトの作成
  5. ローカルでテスト
  6. ウェブ API プロジェクトを ECR にパブリッシュ
  7. IAM ロールの作成
  8. アプリランナーサービスの作成
  9. DynamoDB 用の VPC エンドポイントを作成します。
  10. クラウドでのテスト
  11. アップデートのデプロイ
  12. シャットダウン

 所要時間

90 分

実装

ステップ 1: AWS のセットアップ

このステップでは、AWS 環境を設定します。

既に AWS App Runner を開発してデプロイしていて、 AWS Deploy Tool for .NET CLI がインストールされている場合は、ステップ 3 に早送りできます。

1.AWS アカウントを再開する

既存の AWS アカウントを使用するか、AWS アカウントを作成します。プロダクションアカウントは使用しないでください。

2.AWS リージョンを選択

AWS コンソールにサインインして、作業対象の AWS App Runner と DynamoDB をサポートする AWS Region を選択します。

3.開発環境の作成

このラボでローカルマシンを使用する場合は、ステップ 2 に進んでください。

Cloud9 を使用している場合は、以下に進んでください。

AWS コンソールから Cloud9 環境をセットアップします。

A. AWS コンソールで、Cloud9 に移動し、[環境の作成] をクリックします。

B. 環境に AppRunnerLab という名前を付けます。

C. デフォルトのままにして、「作成」をクリックします。

D. 環境が作成されるのを待ちます。数分かかります。t2.micro インスタンスタイプがリージョンで使用できないために環境の作成に失敗した場合は、上記の手順を繰り返して、別のスモールインスタンスタイプを選択してください。インスタンスタイプが無料利用枠に含まれていない場合は、ラボ期間中に請求される料金に注意してください。

請求書を確認する

これで、以下のことが完了したはずです。

✓ AWS アカウント**

AWS マネジメントコンソールにサインインする方法

✓ 働く地域を選択しました

✓ ローカルマシンまたは Cloud9環境が利用可能

ステップ 2: 開発環境を設定する

このステップでは、ソフトウェアをインストールして開発環境をセットアップします。既にインストール済みの項目はスキップしてください。

1.AWS CLI のインストール

こちらから AWS コマンドラインインターフェイス(CLI)をインストールします。

2.AWS CLI を設定する

AWS アカウントのユーザーにリンクされるように AWS CLI を設定します

コマンド/ターミナルウィンドウで、次のコマンドを使用してリージョンを設定します:aws configure

3..NET SDK をインストールする

.NET 6 SDK をインストールします。ご使用のオペレーティングシステム用の SDK をダウンロードしてインストールします。

Cloud9 を使用している場合は、「必要なツールのインストール (ステップ 1 とステップ 2)」 でこれらのコマンドを実行できます。次に、次のコマンドを実行します。/dotnet-install.sh-c LTS。

4..NET CLI 用 AWS 開発ツールをインストールする

コマンド/ターミナルウィンドウで、次のコマンドを使用して AWS Deploy Tool for .NET CLI をインストールします。

dotnet ツールのインストール -g aws.deploy.tools

5.Docker をインストールする

Docker デスクトップをインストールします。Docker を既にお持ちの場合は、バージョン 17.05 以降が必要であることに注意してください。

6.IDE のインストール

Microsoft Visual Studio 2022 (Windows)、Visual Studio Code (Linux、macOS、Windows)、 JetBrains Rider (Linux、macOS、Windows) などの IDE をインストールします。.NET Web 開発用のオプションまたは拡張機能を C# でインストールしていることを確認してください。

請求書を確認する

これで、以下のことが完了したはずです。

✓ 前提条件となるすべてのソフトウェアがインストールされている

✓ AWS ユーザーとリージョン用に AWS CLI を設定した

ステップ 3: [Create DynamoDB table (DynamoDB テーブルの作成)]

このステップでは、Weather という名前の DynamoDB テーブルを作成し、いくつかのデータレコードを作成します。

1.AWS コンソールで DynamoDB テーブルを作成する

AWS コンソールで、Amazon DynamoDB に移動し、[テーブルを作成] をクリックします。

    A. テーブル名:天気
    B. パーティションキー:ロケーション
    C. ソートキー:タイムスタンプ
    D. [テーブルの作成] をクリックします。

2.テーブルに項目を追加

天気テーブル名をクリックして詳細ページに移動し、[テーブル項目を検索] をクリックします。次の項目を追加してください。

A.[アイテムと JSON ビューの作成 ] をクリックします。下に JSON を入力し (ダラス、午前)、[アイテムの作成] をクリックします。

{
  "Location": {
    "S": "Dallas"
  },
  "Timestamp": {
    "S": "2022-07-23T06:00:00"
  },
  "Summary": {
    "S": "Hot"
  },
  "TempC": {
    "N": "33"
  },
  "TempF": {
    "N": "92"
  }
}

B.同様に、次の JSON で 2 番目の項目 (ダラス、正午) を追加します。

{
  "Location": {
    "S": "Dallas"
  },
  "Timestamp": {
    "S": "2022-07-23T12:00:00"
  },
  "Summary": {
    "S": "Scorching"
  },
  "TempC": {
    "N": "43"
  },
  "TempF": {
    "N": "109"
  }
}

C.次の JSON で 3 番目の項目 (ダラス、夕方) を追加します。

{
  "Location": {
    "S": "Dallas"
  },
  "Timestamp": {
    "S": "2022-07-23T18:00:00"
  },
  "Summary": {
    "S": "Hot"
  },
  "TempC": {
    "N": "36"
  },
  "TempF": {
    "N": "97"
  }
}

D次の JSON で 4 番目の項目 (ミネアポリス、朝) を追加します。

{
  "Location": {
    "S": "Minneapolis"
  },
  "Timestamp": {
    "S": "2022-07-23T06:00:00"
  },
  "Summary": {
    "S": "Cool"
  },
  "TempC": {
    "N": "13"
  },
  "TempF": {
    "N": "56"
  }
}

E.次の JSON で 5 番目の項目 (ミネアポリス、正午) を追加します。

{
  "Location": {
    "S": "Minneapolis"
  },
  "Timestamp": {
    "S": "2022-07-23T12:00:00"
  },
  "Summary": {
    "S": "Balmy"
  },
  "TempC": {
    "N": "22"
  },
  "TempF": {
    "N": "72"
  }
}

F.次の JSON で 6 番目の項目 (ミネアポリス、夕方) を追加します。 

{
  "Location": {
    "S": "Minneapolis"
  },
  "Timestamp": {
    "S": "2022-07-23T18:00:00"
  },
  "Summary": {
    "S": "Balmy"
  },
  "TempC": {
    "N": "19"
  },
  "TempF": {
    "N": "67"
  }
}

請求書を確認する

これで、以下のことが完了したはずです。

✓「天気」という名前の DynamoDB テーブルには、6 つのアイテムが入力されています。

ステップ 4: .NET ウェブ API プロジェクトを作成する

このステップでは、dotnet new コマンドを使用してウェブ API プロジェクトを作成し、そのコードを更新して DynamoDB テーブルからデータを取得します。

1.CD を開発フォルダに

コマンド/ターミナルウィンドウと CD を開いて開発フォルダに保存します。:

2..NET ウェブ API プロジェクトを作成する

以下の dotnet new コマンドを実行して、HelloAppRunnerVpc という名前の新しい Web API プロジェクトを作成します。

ドットネット新ウェブ API-n HelloAppRunnerVpc-- フレームワークネット 6.0

3.IDE でプロジェクトを開く

IDE で HelloAppRunnerVpc プロジェクトを開きます。

IDE に AWS Toolkit がインストールされている場合は、AWS Explorer のリージョンをステップ 1 で選択したリージョンに設定します。

4.生成されたプロジェクトを確認

生成されたプロジェクトは WeatherForecast API で、.NET サンプルでは非常に一般的に使用されています。

試してみるには、F5 を押して Swagger でテストしてください。このサービスには、模擬気象データ JSON を返す /WeatherForecast アクションがあることがわかります。

プログラムの実行を停止します。

5.AWS SDK ナゲットパッケージを追加

コマンド/ターミナルウィンドウで、CD を使用してプロジェクトフォルダに移動します。以下の dotnet add package コマンドを実行して、AWS SDK NuGet パッケージ AWSSDK.DynamoDBv2 をプロジェクトに追加します。

cd HelloAppRunnerVpc
 dotnet add package AWSSDK.DynamoDBv2

6.Program.cs を変更

コードエディタで Program.cs を開き、次のステートメントを削除するかコメントアウトします。App Runner では必要ありません。

//app.UseHttpsRedirection();

7.WeatherForecast クラスをコーディングする

OpenWeatherForecast.cs を入力し、以下のコードに置き換えてください。このクラスは、Weather テーブルから取得したアイテムを保持します。

namespace HelloAppRunnerVpc;

public class WeatherForecast
{
    public DateTime Date { get; set; }
    public int TemperatureC { get; set; }
    public int TemperatureF { get; set; }
    public string? Summary { get; set; }
}

8.WeatherForecastController クラスのコーディング

Controllers フォルダーの WeatherForecastController.cs を開き、以下のコードに置き換えます。 RegionEndpoint.USEast1 を作業中のリージョンで更新してください。このコードでは、サービスのルートにヘルスチェックメソッドを実装し、/WeatherForecast に WeatherForecast メソッドを実装しています。このメソッドは、ロケーションパラメータを取得して DynamoDB Weather テーブルからそのデータを取得します。テーブルスキャンを実行して、パーティションキーが場所と一致するレコードを検索します。結果は JSON レコードの配列として出力されます。
using Amazon;
using Amazon.DynamoDBv2;
using Amazon.DynamoDBv2.DocumentModel;
using Microsoft.AspNetCore.Mvc;

namespace HelloAppRunnerVpc.Controllers;

[ApiController]
[Route("")]
public class WeatherForecastController : ControllerBase
{
    static readonly RegionEndpoint region = RegionEndpoint.USEast1;

    private readonly ILogger _logger;

    public WeatherForecastController(ILogger<WeatherForecastController> logger)
    {
        _logger = logger;
    }

    [HttpGet("")]
    public string GetHealthcheck()
    {
        return "Healthcheck: Healthy";
    }

    [HttpGet("WeatherForecast")]
    public async Task<IEnumerable<WeatherForecast>> GetWeatherForecast(string location = "Dallas")
    {
        List<WeatherForecast> forecasts = new List<WeatherForecast>();

        try
        {
            _logger.LogInformation($"00 enter GET, location = {location}");

            var client = new AmazonDynamoDBClient(region);
            Table table = Table.LoadTable(client, "Weather");

            var filter = new ScanFilter();
            filter.AddCondition("Location", ScanOperator.Equal, location);

            var scanConfig = new ScanOperationConfig()
            {
                Filter = filter,
                Select = SelectValues.SpecificAttributes,
                AttributesToGet = new List<string> { "Location", "Timestamp", "TempC", "TempF", "Summary" }
            };

            _logger.LogInformation($"10 table.Scan");

            Search search = table.Scan(scanConfig);

            List<Document> matches;
            do
            {
                _logger.LogInformation($"20 table.GetNextSetAsync");
                matches = await search.GetNextSetAsync();
                foreach (var match in matches)
                {
                    forecasts.Add(new WeatherForecast
                    {
                        Date = Convert.ToDateTime(match["Timestamp"]),
                        TemperatureC = Convert.ToInt32(match["TempC"]),
                        TemperatureF = Convert.ToInt32(match["TempF"]),
                        Summary = Convert.ToString(match["Summary"])
                    });
                }
            } while (!search.IsDone);

            _logger.LogInformation($"30 exited results loop");

        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "90 Exception");
        }

        _logger.LogInformation($"99 returning {forecasts.Count} results");

        return forecasts.ToArray();
    }
}

9.変更を保存してビルド

変更を保存し、プロジェクトがビルドされていることを確認します。

請求書を確認する

これで、以下のことが完了したはずです。

✓ HelloAppRunnerVpc という名前のウェブ API プロジェクト

✓ WeatherForecastController.cs でリージョンを設定しました

ステップ 5: ローカルでテストする

このステップでは、ウェブ API をローカルでテストし、DynamoDB からのデータ取得を確認します。

1.プロジェクトのデバッグ

IDE で F5 キーを押し、アプリがビルドされてブラウザで起動するのを待ちます。

2.ヘルスチェックアクションのテスト

ブラウザで、URL から Swagger パスを削除してサービスルートにアクセスすると、ヘルスチェックメッセージが表示されます。App Runner は定期的にサイトに ping を送信してヘルスチェックを行います。

3.ダラスの天気予報アクションをテスト

追加/WeatherForecast?URL パスの末尾に「ロケーション」=「ダラス」を追加します。ステップ 1 で DynamoDB テーブルに作成した値を含む天気予報データ JSON が表示されます。

4.ミネアポリスの天気予報アクションをテスト

URL パスを /WeatherForecast で終わるように変更しますか?場所 = ミネアポリス。これで、その都市の数字が表示されます。

5.無効な場所での天気予報アクションのテスト

別の場所名を試してみると、テーブルにその場所のデータがないため、空の応答が表示されます。

6.プログラムを停止します

プログラムの実行を停止します。

ローカルでテストする場合、アプリが DynamoDB にアクセスするのは簡単でしたが、クラウドではそうはいきません。App Runner はデフォルトでパブリックエンドポイントに制限されているためです。App Runner 用の VPC コネクタと、それに対応する DynamoDB 用の VPC エンドポイントを追加するという追加の手順を実行する必要があります。

請求書を確認する

これで、以下のことが完了したはずです。

✓ Web API プロジェクトをローカルでテストしました。

✓ 確認済みの DynamoDB データが取得されました。

ステップ 6: ウェブ API プロジェクトを ECR にパブリッシュする

このステップでは、AWS .NET デプロイツールを使用してプロジェクトをコンテナ化し、コンテナイメージを Amazon Elastic Container Registry (ECR) にプッシュします。

1.Dokerfile の作成

次のコードを使用して、Dockerfile という名前のテキストファイルをプロジェクトフォルダに追加します。
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["HelloAppRunnerVpc.csproj", "."]
RUN dotnet restore "./HelloAppRunnerVpc.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "HelloAppRunnerVpc.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "HelloAppRunnerVpc.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "HelloAppRunnerVpc.dll"]

2.ECR にデプロイ

プロジェクトをコンテナイメージとして ECR にデプロイします。

a.コマンド/ターミナルウィンドウでこのコマンドを実行してデプロイを開始し、希望するリージョンを指定します。(図 1)

dotnet aws デプロイ--リージョン us-west-2

b.Amazon エラスティックコンテナレジストリ (ECR) にコンテナイメージをプッシュするオプションを選択してください

c.「現在の設定」プロンプトで、画像タグを変更する番号を入力し、最新のものに設定します。(図 2)

d.Enter キーを押してデプロイを確認します。

3.デプロイを待つ

デプロイが完了するまでお待ちください。

4.AWS コンソールでデプロイを確認

コンテナイメージが ECR にデプロイされていることを確認します。AWS コンソールで ECR に移動します。helloapprunnervpc という名前のリポジトリが一覧表示されます。

請求書を確認する

これで、以下のことが完了したはずです。

✓ Dockerfile を使用してプロジェクトをコンテナ化しました。

✓ Amazon ECR にコンテナイメージをデプロイしました。

ステップ 7: IAM ロールを作成する

このステップでは、AWS コンソールを使用して AppRunnerInstanceDynamoDB という名前の IAM ロールを作成します。このロールにより、アプリケーションランナーの EC2 インスタンスは DynamoDB テーブルにアクセスできるようになります。

1.DynamoDB テーブルアクセスのポリシーを作成する

Weather DynamoDB テーブルへのアクセスを許可するポリシーを作成します。    

    a.Introduction to Identity and Access Management (IAM)

    b.左側のペインから [ポリシー] を選択し、[ポリシーの作成] をクリックします。

    c.ポリシーを作成し、下に JSON を入力します。[account] は 12 桁の AWS アカウント番号に、[region] は地域に置き換えてください。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": "dynamodb:*",
            "Resource": "arn:aws:dynamodb:[region]:[account]:table/Weather"
        }
    ]
}

    d.[Next: Tags] 、続いて [Next: Review] をクリックします。ポリシーに ddb-Weather という名前を付け、[ポリシーの作成] をクリックします。

2.EC2 インスタンス用のロールの作成

アプリケーションランナー EC2 インスタンス用のロールを作成します。

    a.左側のペインから [ロール] を選択し、[ロールの作成] をクリックします。

    b.信頼されたエンティティタイプとして [AWS のサービス] を選択します。(図 1)

    c.[ユースケース] で [EC2] を選択し、[次へ] をクリックします。(図 1)

    d.ddb-Weather、AmazonDynamoDBFullAccess、および AWS AppRunnerFullAccess 権限を検索して選択してください。続いて、[次へ] をクリックします。(図 2)

    e.「信頼関係」タブで、「信頼ポリシーの編集」をクリックします。この JSON に置き換えて、[ポリシーの更新] をクリックします。(図 5)

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "ec2.amazonaws.com",
                    "tasks.apprunner.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

    f.ロールに AppRunnerInstanceDynamoDB という名前を付け、「ロールを作成」をクリックします。(図 3)

請求書を確認する

これで、以下のことが完了したはずです。

✓ 3 つのポリシーを持つ AppRunnerInstanceDynamoDB という名前の IAM ロール。 

ステップ 8: アプリケーションランナーサービスを作成する

このステップでは、App Runner サービスと VPC コネクタを作成します。

1.サービスを作成する

AWS コンソールで、AWS App Runner に移動し、[サービスの作成] をクリックします。

    a.リポジトリタイプ:コンテナレジストリ。 (図 1)

    b.プロバイダー:アマゾン ECR.

    c.Browse をクリックし、ステップ 6 で ECR にデプロイしたコンテナを選択します。(図 2)

    d.[デプロイ設定トリガー] で [自動] を選択します。

    e.ECR アクセスロールについては、「新規サービスロールの作成」を選択します。

    f.[次へ] をクリックします。

2.サービスの設定

「サービスの設定」ページで、

    a.サービス名:HelloAppRunnerVpc

    b. b。ポート = 80

3.インスタンスロールの設定

セキュリティセクションを展開し、インスタンスロールを AppRunnerInstanceDynamoDB に設定します。

4.VPC コネクタの作成

ネットワークセクションを展開し、VPC コネクタを作成します。

    a.[ネットワーク] で、[カスタム VPC] を選択します。

    b.[VPC コネクタ] で、[新規追加] をクリックします。

    c.VPC コネクタ名:AppRunnerDynamoDB(図 1)

    d.VPC: デフォルトの VPC を選択します。

    e.サブネット:すべてのサブネットを選択します。

    f.セキュリティグループ:デフォルトのセキュリティグループを選択します。(図 2)

    g.[追加] をクリックします。サブネットの 1 つが App Runner サービスをサポートしていないというエラーメッセージが表示されたら、そのサブネットをサブネットリストから削除して、もう一度 [追加] をクリックします。(図 2)

    h.[次へ] をクリックし、[作成してデプロイ] をクリックします。

5.デプロイを待つ

デプロイが完了するまでお待ちください。デプロイには数分かかります。これは休憩するのに良い時間です。

6.レコードサービス URL

サービスのデプロイが完了すると、「サービスの作成に成功しました」というメッセージが表示されます。

デフォルトドメイン URL を記録します。これはサービス URL です。

イベントログを更新すると、サービスが実行されていることを確認できます。

7.サービス URL を参照

URL を参照すると、ヘルスチェックが表示されます。このサービスは App Runner でホストされていますが、まだ DynamoDB にアクセスできません。App Runner VPC コネクタを作成しましたが、それでも DynamoDB に対応する VPC エンドポイントを作成する必要があります。

請求書を確認する

これで、以下のことが完了したはずです。

✓ HelloAppRunnerVpc という名前の実行中の AWS App Runner サービス。

✓ サービスエンドポイント URL。

✓ ヘルスチェックの URL がブラウザで応答することを確認しました。

ステップ 9: DynamoDB の VPC エンドポイントを作成する

このステップでは、DynamoDB の VPC エンドポイントを作成します。

1.AWS コンソールで VPC に移動します

2.エンドポイントの作成

左側のパネルから [エンドポイント] を選択し、[エンドポイントの作成] をクリックします。

    a.名前:vpc-エンドポイント-dynamodb。(図 1)

    b. b。サービスカテゴリ:AWS サービス。

    c.サービス:検索ボックスに「DynamoDB」と入力し、com.amazonaws.region.dynamodb を選択します。

    d.VPC: デフォルトの VPC を選択します。

    e.ルートテーブル:メインルートテーブルを選択します。

    f.「エンドポイントを作成」をクリックします。(図 2)

請求書を確認する

これで、以下のことが完了したはずです。

vpc-endpoint-DynamoDB という名前の dynamodb の VPC エンドポイント。

ステップ 10: クラウドでのテスト

これで、すべてをまとめて、クラウドで Web API をテストする準備ができました。

1.サービス URL にアクセスする

ブラウザで、ステップ 6 で記録したサービス URL にアクセスします。ヘルスチェックのレスポンスが表示されます。

2.ダラスのテスト天気予報アクション

追加/WeatherForecast?ロケーション=パスの終点にあるダラス。これで、ステップ 1 で入力したダラスのレコードが表示されます。

3.ミネアポリスのテスト天気予報アクション

3.パスの終わりを /WeatherForecast に変更しますか?LOCATION=ミネアポリス。そのロケーションのレコードが表示されます

おめでとうございます。 ウェブ API は AWS App Runner でホストされており、サービスは DynamoDB と通信しています。

請求書を確認する

これで、以下のことが完了したはずです。

✓ お使いの AWS App Runner サービスが DynamoDB テーブルからデータを取得できることを確認しました。

ステップ 11: アップデートをデプロイする

このステップでは、ウェブ API を更新し、更新されたコンテナをプッシュし、App Runner が更新されたコンテナをサービスに自動的にデプロイするのを確認します。これは、サービスの作成時にステップ 8 で自動デプロイを設定したためです。

1.Service を変更します。

IDE で、応答が少し異なるように GetWeatherForecast メソッドを変更してください。たとえば、「サマリー」フィールドに感嘆符を追加できます。

2.ローカルでのビルドとテスト

プロジェクトをローカルでビルドしてテストし、期待どおりに動作することを確認します。 

3.コンテナを再デプロイ

プログラムを停止します。コマンド/ターミナルウィンドウで再度 dotnet aws deploy を実行して、ステップ 6 で行ったように、更新したコンテナーを ECR にデプロイします。 タグが最新のものであることを確認してください

4.監視サービスの再配置

AWS App Runner コンソールで、サービスを監視します。新しいコンテナがデプロイされた直後に、App Runner は自動的にアップデートをデプロイします。

5.更新されたサービスをテストする

更新が完了するまで待ってから、ステップ 10 で行ったようにサービスをブラウズしてテストします。これで、サービスからの出力の新しいバージョンが表示されることを確認します。

請求書を確認する

これで、以下のことが完了したはずです。

✓ Web API プロジェクトを変更して更新しました。

✓ 更新したコンテナを ECR にデプロイしました。

✓ App Runner がアップデートを自動的にデプロイしたことを確認しました。 

ステップ 12: シャットダウン

知識をテストするために、プロジェクトの変更を自由に試してみてください。

プロジェクトがすべて完了したら、終了します。使用していないものに対して料金が発生することは避けたいものです。

1.アプリケーションランナーサービスを削除する

AWS コンソールで、アプリケーションランナーに移動し、HelloAppRunnerVpc サービスを削除します。

2.ステップ 1: DynamoDB テーブルを削除する

DynamoDB に移動し、天気テーブルを削除します

3.コンテナイメージを削除する

ECR に移動し、 helloapprunnervpc コンテナーイメージを削除します。

4.AWS Cloud9 環境を削除する

Cloud9 を使用している場合は、Cloud9 に移動して AppRunnerLab 環境を削除します。

請求書を確認する

これで、以下のことが完了したはずです。

✓ アプリランナーサービスを削除しました。

✓ DynamoDB テーブルを削除しました。

✓ ECR コンテナイメージを削除しました。 

サマリー

このラボでは、DynamoDB テーブルを作成し、データを入力しました。dotnet new コマンドを使用して、.NET Web アプリケーションプロジェクトを生成しました。DynamoDB テーブルから気象データを取得するウェブ API をコーディングしました。ECR にコンテナをデプロイしました。Web API をホストするアプリケーションランナーサービスを作成しました。App Runner VPC コネクタと DynamoDB の VPC エンドポイントを作成して、接続可能な 2 つのサービスを接続します。現在 AWS でホストされているアプリケーションをテストし、動作を確認しました。更新したコンテナを ECR にデプロイし、App Runner サービスに自動的にデプロイされたことを確認しました。最後に、アプリケーションを AWS から割り当て解除しました。

このページは役に立ちましたか?