OCHaCafe参加前に触っておこうと思い、その準備。
OCIインストール
手順は公式からコピペで。
$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
fatal error: Python.h: No such file or directory
エラーで落ちたので、python3-dev
パッケージをインストール。
$ sudo apt-get install python3-dev
OCI再挑戦。先程作成したディレクトリを削除するか聞かれるので、削除(y)して継続。
ちなみにインストール先など入力は全部デフォルトで通した。
今度はfatal error: ffi.h: No such file or directory
で落ちた。
$ sudo apt-get install libffi-dev
3度目の挑戦。
fatal error: openssl/opensslv.h: No such file or directory
はい。
$ sudo apt-get install libssl-dev
今度こそ。 できた。表示に従ってshellを再起動する。
$ exec -l $SHELL
バージョン確認。
$ oci -v
-bash: oci: command not found
うーん。PATHがちゃんと設定されていない。というか.bashrc
が読み込まれてない。
$ bash
$ oci -v
2.6.10
とりあえずOK。
OCI設定
Qiitaの記事を参考にすすめた。
- APIユーザー作成
api
oci setup config
で生成された公開鍵設定- 動作確認
$ oci iam region list --output table +-----+----------------+ | key | name | +-----+----------------+ | BOM | ap-mumbai-1 | | FRA | eu-frankfurt-1 | | GRU | sa-saopaulo-1 | | IAD | us-ashburn-1 | | ICN | ap-seoul-1 | | LHR | uk-london-1 | | NRT | ap-tokyo-1 | | PHX | us-phoenix-1 | | SYD | ap-sydney-1 | | YYZ | ca-toronto-1 | | ZRH | eu-zurich-1 | +-----+----------------+
Functionsに挑戦
ここからは別のQiita記事を参考に。
- VCNはすでにあったものを使用。
- CompartmentはAPI用に作成。
api_test
- IAM groupを作成、APIユーザーをグループに追加。
api_group
- Policyを作成、Statementを追加。
- fnコマンドインストール
結構時間かかる。$ curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh sh: 58: fn: Exec format error
set -ex
しておいてくれればいいのに。そしてエラー。arm用バイナリがない。 - fnコマンドビルド
CONTRIBUTINGに手順があったので試してみる。
OK。$ git clone https://github.com/fnproject/cli.git $GOPATH/src/github.com/fnproject/cli $ cd $GOPATH/src/github.com/fnproject/cli $ make dep $ make install $ sudo cp $GOPATH/bin/fn /usr/local/bin/fn $ fn --version fn version 0.5.91
- contextの作成と選択
$ fn create context api_context $ fn use context api_context $ fn ls contexts CURRENT NAME PROVIDER API URL REGISTRY * api_context oracle default default http://localhost:8080
- contextのupdate
$ fn update context oracle.compartment-id <compartment-ocid> $ fn update context api-url https://functions.us-phoenix-1.oraclecloud.com $ fn update context registry phx.ocir.io/<tenancy-name>/oracle-function $ fn update context oracle.profile DEFAULT
- token取得とdockerログイン
エラー。phxにアクセスしに行っているのが良くないっぽい。東京リージョンは$ oci iam auth-token create --user-id <user-ocid> --description oracle-fuction $ sudo docker login phx.ocir.io -u <tenancy name>/<iam user name>
nrt
を指定する。 https://docs.cloud.oracle.com/iaas/Content/Registry/Concepts/registryprerequisites.htm#Availab 空港コード?hndじゃないのか。 設定を修正
同じエラー。。$ fn update context api-url https://functions.ap-tokyo-1.oraclecloud.com $ fn update context registry nrt.ocir.io/<tenancy-name>/oracle-function $ sudo docker login nrt.ocir.io -u <tenancy name>/<iam user name>
Error response from daemon: Get https://nrt.ocir.io/v2/: unknown: Tenant with namespace ****** not found