コンテンツへスキップ

関数のビルド、実行、またはデプロイ

関数プロジェクトを作成したら、ユースケースに応じて、関数をビルド、実行、またはデプロイできます。

関数の実行

関数の実行では、ローカル環境で関数を実行する前に、関数のOCIコンテナイメージが作成されますが、関数がクラスタにデプロイされることはありません。これは、テストシナリオのためにローカルで関数を実行したい場合に便利です。

前提条件

  • ローカルマシンにDockerデーモンがあること。クイックスタートインストールを使用している場合は、これはすでに提供されています。

手順

runコマンドは、必要に応じて関数のイメージをビルドし、このイメージをクラスタにデプロイするのではなく、ローカルで実行します。

プロジェクトディレクトリ内でコマンドを実行して、関数をローカルで実行します。まだ関数をビルドしていない場合は、--registryフラグを指定する必要があります。

cd hello
func run [--registry <registry>]

注意

イメージレジストリの座標は、環境変数(FUNC_REGISTRY)を介して構成することもできます。

このコマンドを使用すると、必要に応じて関数もビルドされます。

コマンドを実行することで、イメージの再ビルドを強制できます。

func run --build

コマンドを実行することで、ビルドを無効にすることもできます。

func run --build=false

プロジェクトディレクトリ内でコマンドを実行して、関数をローカルで実行します

cd hello
kn func run

このコマンドを使用すると、必要に応じて関数もビルドされます。

コマンドを実行することで、イメージの再ビルドを強制できます。

kn func run --build

コマンドを実行することで、ビルドを無効にすることもできます。

kn func run --build=false

invokeコマンドを使用し、出力を観察することで、関数が正常に実行されたことを確認できます

func invoke
kn func invoke

期待される出力

Received response
POST / HTTP/1.1 hello.default.127.0.0.1.sslip.io
  User-Agent: Go-http-client/1.1
  Content-Length: 25
  Accept-Encoding: gzip
  Content-Type: application/json
  K-Proxy-Request: activator
  X-Request-Id: 9e351834-0542-4f32-9928-3a5d6aece30c
  Forwarded: for=10.244.0.15;proto=http
  X-Forwarded-For: 10.244.0.15, 10.244.0.9
  X-Forwarded-Proto: http
Body:

関数のデプロイ

関数のデプロイでは、関数のOCIコンテナイメージが作成され、このコンテナイメージがイメージレジストリにプッシュされます。関数はKnativeサービスとしてクラスタにデプロイされます。関数の再デプロイでは、コンテナイメージとクラスタで実行されている結果のサービスが更新されます。クラスタにデプロイされた関数は、他のKnativeサービスと同様にクラスタ上でアクセスできます。

前提条件

  • ローカルマシンにDockerデーモンがあること。クイックスタートインストールを使用している場合は、これはすでに提供されています。

  • コンテナレジストリへのアクセス権があり、このレジストリにイメージをプッシュできること。一部のイメージレジストリでは、新しくプッシュされたイメージがデフォルトでプライベートに設定されることに注意してください。初めて関数をデプロイする場合は、イメージがパブリックに設定されていることを確認する必要がある場合があります。

手順

deployコマンドは、Knativeサービス名として関数プロジェクト名を使用します。関数がビルドされると、プロジェクト名とイメージレジストリ名を使用して、関数の完全修飾イメージ名が構築されます。

プロジェクトディレクトリ内でコマンドを実行して、関数をデプロイします

func deploy --registry <registry>

プロジェクトディレクトリ内でコマンドを実行して、関数をデプロイします

kn func deploy --registry <registry>

期待される出力

    🙌 Function image built: <registry>/hello:latest
     Function deployed in namespace "default" and exposed at URL:
    http://hello.default.127.0.0.1.sslip.io

invokeコマンドを使用し、出力を観察することで、関数が正常にデプロイされたことを確認できます

func invoke
kn func invoke

期待される出力

Received response
POST / HTTP/1.1 hello.default.127.0.0.1.sslip.io
  User-Agent: Go-http-client/1.1
  Content-Length: 25
  Accept-Encoding: gzip
  Content-Type: application/json
  K-Proxy-Request: activator
  X-Request-Id: 9e351834-0542-4f32-9928-3a5d6aece30c
  Forwarded: for=10.244.0.15;proto=http
  X-Forwarded-For: 10.244.0.15, 10.244.0.9
  X-Forwarded-Proto: http
Body:

関数のビルド

関数のビルドでは、コンテナレジストリにプッシュできる関数のOCIコンテナイメージが作成されます。これにより、関数が実行またはデプロイされることはありません。これは、たとえばテストシナリオで、ローカルで関数のコンテナイメージをビルドしたいが、関数を自動的に実行したりクラスタにデプロイしたりしたくない場合に便利です。

前提条件

  • ローカルマシンにDockerデーモンがあること。クイックスタートインストールを使用している場合は、これはすでに提供されています。

手順

buildコマンドは、プロジェクト名とイメージレジストリ名を使用して、関数の完全修飾コンテナイメージ名を構築します。関数プロジェクトが以前にビルドされていない場合は、イメージレジストリを指定するように求められます。

関数をビルドするには、次のコマンドを実行します

func build

関数をビルドするには、次のコマンドを実行します

kn func build

注意

イメージレジストリの座標は、環境変数(FUNC_REGISTRY)を介して構成することもできます。

当社はサイトトラフィックを理解するために分析とクッキーを使用しています。当サイトの利用に関する情報は、その目的のためにGoogleと共有されます。詳しくはこちら。