Kubernetes ワークロードの使用

Creating and Testing Serverless Functions

Objective

After completing this lesson, you will be able to サーバレスの関数の作成とテスト

サーバレス機能の登録およびテスト

使用シナリオ

あなたは、データを受信および処理するための API を作成する必要がある開発者です。サーバレスの関数を使用してこのような API を実装するアプローチについて聞いたことがあるため、サーバレス関数の作成方法とその使用方法を学習する必要があります。

タスクフロー

この演習問題では、以下のステップを実行します。

  1. kubectl を使用してサーバレスの関数を作成します。
  2. Kyma ダッシュボードを使用してサーバレス関数を作成します。
  3. HTTP を使用して関数を公開およびテストします。

前提条件

タスク 1: サーバレス機能の登録およびテスト

ステップ

  1. kubectl を使用してサーバレスの関数を作成します。

    1. ターミナルを開き、デフォルトの名前空間にある現在のサーバレスの関数をすべて一覧表示します。

      Code Snippet
      1
      kubectl get functions

      名称領域に関数がない場合は、空の一覧が表示されます。

    2. デフォルトの名前空間で Istio サイドカープロキシのインジェクションを有効化します。

      Code Snippet
      1
      kubectl label namespace default istio-injection=enabled --overwrite

      Istio サイドカーインジェクションが有効化された名前空間に関数を作成すると、Istio サイドカープロキシがその作成時に自動的に関数の Pod にインジェクトされます。これにより、関数が Istio サービスメッシュの一部になります。ステップ 3 で実行する APIRule カスタムリソースを使用してワークロードを公開するには、ワークロードを Istio サービスメッシュに含める必要があります。

    3. サーバレスの関数を作成するには、次のコマンドを実行します。

      Code Snippet
      1
      kubectl apply -n default -f https://raw.githubusercontent.com/sap-samples/kyma-runtime-learning-journey/main/unit_3/functions/hello-world-function.yaml

      成功すると、出力 function.serverless.kyma-project.io/hello-world-function が作成されます。

    4. デフォルトの名称領域内のすべてのを再度一覧表示します。

      Code Snippet
      1
      kubectl get functions

      関数 hello-world-function が一覧にあります。

  2. Kyma ダッシュボードを使用してサーバレス関数を作成します。

    1. Kyma ダッシュボードを開き、Namespaces に移動して default を選択します。

    2. ワークロード → 機能に移動し、登録を選択します。

    3. 以下の情報を入力します。

      • 名前: hello-kyma-function
      • 言語: JavaScript
      新規機能の登録

      YAML タブに切り替えて、関数の YAML マニフェストを表示、コピー、または編集することもできます。

    4. 登録ボタンを選択します。

      結果

      関数を作成しています。数秒後、ステータスは Running になります。

  3. HTTP を使用して関数を公開およびテストします。

    注記

    HTTP を使用して関数を公開すると、ブラウザで関数をテストできます。詳細については、コースの後半で説明します。
    1. サブアカウント概要の Kyma 環境セクションに移動し、Kyma クラスタのデフォルトドメインを確認します。

      https://api の後に APIServerURL の値をコピーします。たとえば、URL https://api.xxx123.kyma.ondemand.com の場合は、xxx123.kyma.ondemand.com をコピーします。

    2. Discovery and Network→API Rules に移動し、Create を選択します。

    3. 以下の情報を入力し、登録ボタンを選択します。

      • 名前: hello-kyma-function-api
      • サービス名: hello-kyma-function
      • ポート: 80
      • ホスト: hello-kyma-function-api.<your-domain>

        <your-domain> をコピーされたドメイン名に置き換えます。

      • アクセス方針: No Auth

      この APIRule CR を作成することで、関数を HTTP エンドポイントとして公開します。GET 要求のみが許可されます。

    4. URL hello-kyma-function-api.<your-domain> をブラウザにペーストします。

      結果

      以下のメッセージが表示されます。

      Hello world from the Kyma Function hello-kyma-function running on nodejs20!

結果

Bravo、サーバレス機能の作成とテストが完了しました。