864 Views
April 15, 25
スライド概要
クラウドエンジニア。OCIがメインですが、Oracle Databaseはちょっぴり苦手。 AWSも勉強中。
OCI Functions をローカル環境から実行 Copyright © Cloudii Inc. All Rights Reserved.
アジェンダ • 自己紹介 • 今回やりたいこと • 事前準備 • 本手順 • アプリケーションを作成 • ローカル環境にPodman,Fn をインストール • ローカル・セットアップでファンクションを作成 • ファンクションをアプリケーションにプッシュ • ファンクションを起動 Copyright © Cloudii Inc. All Rights Reserved.
今回やりたいこと ローカル環境でFn をセットアップ、 OCI 上のファンクションを起動できる か検証 ※Docker→Podman に環境変更を実施 Copyright © Cloudii Inc. All Rights Reserved.
事前準備 以下リソースは準備済 • コンパートメント • ネットワーク系リソース • VCN • サブネット • インターネット・ゲートウェイ • ルート表 • IAM ポリシー Copyright © Cloudii Inc. All Rights Reserved.
OCI Functions とは? • OCI サービス向けに最適化されたサーバレス・プラットフォーム • ユースケース • CPU 使用率が急上昇した時に、Functions に連携、スケールアップを実施 • ファンクション関連の最近のリリース • ファンクションのメモリが最大2GB→3GBに拡張 • クラウド・シェル環境からDocker Engine が実行不可 代わりにPodman※後述 が提供 Copyright © Cloudii Inc. All Rights Reserved.
設定 Copyright © Cloudii Inc. All Rights Reserved.
本手順 1. アプリケーションを作成 2. ローカル環境にPodman,Fn をインストール 3. ローカル・セットアップでファンクションを作成 4. ファンクションをアプリケーションにプッシュ 5. ファンクションを起動 Copyright © Cloudii Inc. All Rights Reserved.
1.アプリケーションの作成 • 名前:任意(ここでは「helloworldapp」で作成) • VCN・サブネット:準備済のリソースを 使用 • シェイプ:任意(ここではx86アーキテク チャを使用) Copyright © Cloudii Inc. All Rights Reserved.
2.実行環境のセットアップ 以下手順で実施 ① OCI CLI をインストール ② podmanとpodman-docker をインストール ③ Fn をインストール ④ Fn のコンテナエンジンを変更 ⑤ Docker ログイン用の認証トークンを作成 Copyright © Cloudii Inc. All Rights Reserved.
①OCI CLI をインストール • 端末にOCI CLI をインストール • API キーベース認証を行うため • CLI を使用して操作は未実施 • 構成ファイルを作成後、API キーを OCI コンソールにアップロード Copyright © Cloudii Inc. All Rights Reserved.
②podmanとpodman-docker をインストール • podmanとpodman-docker を以下コ マンドでそれぞれインストール • dnf install –y podman • dnf install –y podman-docker Copyright © Cloudii Inc. All Rights Reserved.
※補足:Podmanとは • Red Hat が開発 • Docker 互換のコンテナ管理ツール • デーモンを使用せずコンテナを稼働 • root権限で操作が不要 Copyright © Cloudii Inc. All Rights Reserved.
③Fn をインストール • Fnを以下コマンドでインストール • curl -LSs https://raw.githubusercontent.com /fnproject/cli/master/install | sh ※ Fn…Functions を操作するCLI ツール Copyright © Cloudii Inc. All Rights Reserved.
④Fn のコンテナエンジンを変更 • デフォルトでは、Fnのコンテナエンジン はDockerになっているため、Podman に変更を行う必要がある ~/.fn/config.yaml Copyright © Cloudii Inc. All Rights Reserved.
⑤Docker ログイン用の認証トークンを作成 • OCI コンソール画面からDocker のログインに必要な認証トークンを取得 Copyright © Cloudii Inc. All Rights Reserved.
本手順 1. アプリケーションを作成 2. ローカル環境にPodman,Fn をインストール 3. ローカル・セットアップでファンクションを作成 4. ファンクションをアプリケーションにプッシュ 5. ファンクションを起動 Copyright © Cloudii Inc. All Rights Reserved.
3.ローカル・セットアップでファンクションを作成 以下手順で実施 ① ファンクションを作成 ② コンテキストを作成 ③ コンテキストの情報を更新 ④ Dockerにログイン Copyright © Cloudii Inc. All Rights Reserved.
①ファンクションを作成 • 「my-func」という名前で以下コマンド でローカル上でファンクションを作成 • fn init --runtime python my-func • fn init…新しいファンクションを初期化 • --runtime python…Pythonで実行 することを指定 • my-func…作成するファンクション名 Copyright © Cloudii Inc. All Rights Reserved.
①ファンクションを作成 • コマンド実行後、ファンクション名(myfunc)と同じ名前のディレクトリが作成 • その中に各設定ファイルが生成 • func.py… ファンクションのスクリプト デフォルトでテスト用コードが含まれる • func.yaml…設定ファイル • requirements.txt…依存関係の管理 ファイル • 同じ名前のディレクトリに移動 Copyright © Cloudii Inc. All Rights Reserved.
②コンテキストを作成 • 以下コマンドでコンテキスト※を作成 ※ 「作業スペース」のようなもの • fn create context fn-compartment -provider oracle • fn create context…新しいコンテキスト を作成 • fn-compartment…コンテキストの名前 • --provider oracle…プロバイダ※を OCIに設定 Copyright © Cloudii Inc. All Rights Reserved.
②コンテキストを作成 • 作成後、コンテキストを使用 • fn use context fn-compartment Copyright © Cloudii Inc. All Rights Reserved.
③コンテキストの情報を更新 • コンテキストにコンパートメントOCIDを設 定 • fn update context oracle.compartment-id ocid1.compartment.oc1..aaaaaaaaxxx • ファンクションのエンドポイントURLを設定 • fn update context api-url https://functions.ap-tokyo1.oraclecloud.com※ ※ 東京リージョンの場合 Copyright © Cloudii Inc. All Rights Reserved.
③コンテキストの情報を更新 • コンテナ・イメージのレジストリを更新 • fn update context registry nrt.ocir.io/<オブジェクト・ストレージの ネームスペース>/fn-repo※ ※ 任意 Copyright © Cloudii Inc. All Rights Reserved.
④Dockerにログイン • Dockerにログイン • docker login -u ‘<オブジェクト・ストレー ジのネームスペース>/fn-user’ nrt.ocir.io※ ※ 東京リージョンの場合 • ログイン時、認証トークンのパスワードを使 用して認証を行う Copyright © Cloudii Inc. All Rights Reserved.
本手順 1. アプリケーションを作成 2. ローカル環境にPodman,Fn をインストール 3. ローカル・セットアップでファンクションを作成 4. ファンクションをアプリケーションにプッシュ 5. ファンクションを起動 Copyright © Cloudii Inc. All Rights Reserved.
4.ファンクションをアプリケーションにプッシュ • 以下コマンドでプッシュ • fn deploy --app helloworld-app Copyright © Cloudii Inc. All Rights Reserved.
4.ファンクションをアプリケーションにプッシュ • OCIコンソールのアプリケーション詳細 を確認すると、ファンクションが作成され ていることが分かる Copyright © Cloudii Inc. All Rights Reserved.
5.ファンクションを起動 • アプリケーションにプッシュしたファンク ションを以下コマンドで実行 • fn invoke helloworld-app my-func • 今回はテスト用スクリプトの状態でデプ ロイしたため、実行結果として以下の出 力が表示 • {"message": "Hello World"} Copyright © Cloudii Inc. All Rights Reserved.
本手順 1. アプリケーションを作成 2. ローカル環境にPodman,Fn をインストール 3. ローカル・セットアップでファンクションを作成 4. ファンクションをアプリケーションにプッシュ 5. ファンクションを起動 Copyright © Cloudii Inc. All Rights Reserved.
Thank you for listening !! Copyright © Cloudii Inc. All Rights Reserved.