関数のビルド、実行、またはデプロイ¶
関数プロジェクトを作成したら、ユースケースに応じて、関数をビルド、実行、またはデプロイできます。
関数の実行¶
関数の実行では、ローカル環境で関数を実行する前に、関数の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
)を介して構成することもできます。