id:s-oomoriです。
この記事は「Oracle Cloud Infrastructure Advent Calendar 2019」その1の12月23日の記事として書かれています。
当初の予定とは違ってますが、、、その内容は別途どこかで書いてみます。
先日?、Limited Availability(LA/限定版)のAPI Gatewayを申し込んで応募者多数で先行漏れにより涙を流していたところですが、(やっと)API Gatewayが一般公開(GA)されました(´・Д・)」
リリースノート docs.cloud.oracle.com
ドキュメント docs.cloud.oracle.com
早速デプロイしてみました。
Functionsと連携させてみたかったのですが、私のFunctions環境は先日(訳ありで)全部削除してたので、今回は簡単にAPI GatewayがHTTPSリクエストを受けて(GET)、バックエンドとしてWebページ(HTTP)を返すといった設定をしてみます。
本記事の目次
【1】設定手順
1.「開発サービス」-「APIゲートウェイ」を選択します。
※Gatewayは訳さなくてもいいと思いますが、、、
2.「ゲートウェイの作成」を選択します。
3.「ゲートウェイの作成」画面では下記項目を選択・入力し、「作成」を選択します。
・名前:任意
・タイプ:パブリック(他にプライベートを選択可能)
・コンパートメント:任意のコンパートメントを指定
・仮想クラウド・ネットワーク:任意のVCNを指定
※プライベートの時に必要になるのかな?
・サブネット:任意のサブネットを指定
※これもプライベートの時に必要になるのかな?
4.作成したゲートウェイがアクテイブになったら、リソースメニューの「デプロイメント」を選択し、「デプロイメントの作成」を選択します。
5.今回は「既存のAPIのアップロード」を選択してデプロイしてみます。「アップロード情報」に下記項目を入力し「次」を選択します。
・名前:任意(API名が良いと思います)
・パス接頭辞:URLのトリガーになるパス
・コンパートメント:任意
・仕様:予め作成しておいたJSONファイルをUP
今回は簡単に下記の通り作成
{ "routes": [ { "path": "/api", "methods": ["GET"], "backend": { "type": "HTTP_BACKEND", "url": "http://nginx02.shinpy.info/apigw.html" } } ] }
簡単に説明すると下記になります。詳細は公式サイトを参照ください。
{ "routes": [ { "path": "接頭辞の次のURLを記載", "methods": ["「GET」や「POST」を記載"], "backend": { "type": "今回のバックエンドはWebサイトを指定したかったので「HTTP_BACKEND」を指定", "Webサイトなので「url」を指定": "実際のURLを記載=「http://nginx02.shinpy.info/apigw.html」" } } ] }
6.確認画面が表示され、アップしたJSONファイルの内容等を確認し、「作成」を選択します。
7.正常にデプロイが完了したら、作成した「nginx02-api」を選択します。
8.「nginx02-api」のデプロイメント情報欄では、エンドポイントが記載されてますので、これをコピーします。
9.先程のエンドポイント(URL)に、「/api」パスを追加してブラウザで確認するとWebページが表示されました!!
※URL = https://gfglwkublfo2y2ozuqfaasvdbi.apigateway.ap-tokyo-1.oci.customer-oci.com/nginx02/api
※curlコマンドでも確認できます。
$ curl -k -X GET https://gfglwkublfo2y2ozuqfaasvdbi.apigateway.ap-tokyo-1.oci.customer-oci.com/nginx02/api $ nginx01 webpage!! cloudii !!
【2】まとめ
JSONファイルの箇所だけ公式ドキュメントを読みましたが、それ以外は直感的に設定できたのでGUI的に整ってます。(もう少し使ってみないとですが、、、)
これでFunctionsのフロントができたので、諸々対応できるようになっていくと思います。
【3】告知
OCIのユーザーグループですが、12月は大忘年会を開催しとても盛り上がりました(´・Д・)」
来年も引き続き毎月開催していきますので、お気軽にご参加ください。
2020年一発目は1月21日(火)18:30開始で、初心者向けの内容で発表します。
fullenergy-oci.connpass.com