IBM API Connect as a Service on AWS 試用版を使ってみる

IBM API Connect の試用版が、AWS Marketplace (USリージョン)で利用できます。
この記事では、AWS上でIBM API Connectを利用するまでの手順をご紹介します。

[Announcing IBM® API Connect® as a Service on AWS](https://www.ibm.com/cloud/blog/announcements/ibm-api-connect-as-a-service-on-aws "Announcing IBM® API Connect® as a Service on AWS")
[IBM API Connect as a Service on AWS: Open for Business](https://community.ibm.com/community/user/integration/blogs/nathan-ziemann1/2022/06/29/ibm-api-connect-as-a-service-on-aws-open-for-busin
 "IBM API Connect as a Service on AWS: Open for Business ")
[IBM API Connect as a Service on AWSでAPI連携をクイックスタート ](https://note.com/ibm_automation/n/n3f2e51dbc86c
 "IBM API Connect as a Service on AWSでAPI連携をクイックスタート ")

# はじめに
IBM API ConnectのSaaS版をAWSのサイトから試用が可能です。試用期間は30日です。
IBM API Connect as a Service on AWSの試用をする場合、IBMidを利用します。（AWSのアカウントは不要です）
IBM API Connect
https://aws.amazon.com/marketplace/pp/prodview-b3u5z3pv4wccg
（30日間の試用期間終了後、引き続き利用するためには製品購入が必要となり、試用継続できません）

:::note warn
AWSのMarketplaceにあるIBM API Connectの"Try for free"のリンクからアクセスすると、AWSアカウントも求められますので、試行時には、IBM.comの[API Connect free trial](https://ibm.biz/apiconnect-trial)にアクセスしてください。
:::

# IBM API Connect as a Service on AWSの利用
## IBM API Connect 環境の払い出し
IBM API Connectの払い出しと簡単な構成の流れは、以下になります。

1. IBM API Connect as a Service on AWSへアクセス
以下のサイトにアクセスします。IBMidでログイン or IBMidをお持ちでない場合は、新規にIBMid作成します。。
（ブラウザの他のセッションでIBMidでログイン済みの場合、そのIBMidで自動的に利用開始までリダイレクトされることがありますので注意してください）
[API Connect free trial](https://ibm.biz/apiconnect-trial)
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/905f38d8-f97f-17de-8f24-0eff42290f27.png)

2. 国名、会社名の入力画面、重要事項の説明画面の表示IBMidでのログイン時に、国名、会社名の入力画面、重要事項の説明画面等が表示される場合があります。それぞれ、内容を確認後、次画面に進んでください。

3. インスタンス・プロビジョニング情報画面
インスタンス・プロビジョニング情報画面が表示されます。ここで指定する「インスタンス名」がプロバイダー組織名として作成されます。試用ユーザーごとにこのプロバイダー組織が作成され、他のユーザーのプロバイダー組織とは分離された形で稼働します。
（プロバイダー組織名は、API呼び出し時のエンドポイントURLのパスにも含まれます）
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/6975e8c2-89f2-77c5-7155-c565895a61a3.png) 
:::note info
利用可能なリージョンにシドニー(ap-southeast-2)が追加されました。
2023/6/1現在で、利用可能なリージョンは以下になります。
- us-east-1
- eu-central-1
- eu-west-2
- ap-southeast-2
:::  


4\. API Managerによるアクセス
プロバイダー組織が作成され環境の準備が整うと、その旨のメールが、IBMidのメールアドレスに送信されます。メール文中の「Access Trial」ボタンをクリックし、API Managerにアクセスします。（このとき、「同意の要求を確認してください」という画面が表示されるかもしれませんが、そのまま「続行」をクリックします）

5\. API Managerの表示
  API Manager画面が表示されます。この画面でAPIの定義や公開の操作を実施します。
（右上には、試用期間の残り日数が表示されます）
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/6c229208-45d1-990b-676c-0088cb60d97e.png)

## API Managerの操作（API作成とテスト呼び出し）
動作確認を想定した簡易なAPI（パラメータ無し、レスポンスメッセージ無し）を定義、呼び出します。


1. ホーム画面で「APIおよび製品の開発」をクリックします。
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/68fce9cb-d51b-77ff-6170-00d6bd2ee17d.png)

2. 「開発」画面で、右上の「追加」をクリックし、API(REST、GraphQL、またはSOAP)を選択します。
![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/6cd930a6-65f7-7954-b20e-9690e068f96e.png)

3. 「APIタイプの選択」画面で「新規OpenAPI」を選択し、「次へ」をクリックします。 
![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/b46986cf-dab8-4ce2-23db-bc30082364c2.png)

4. 「新規 OpenAPI の作成」画面で、タイトルを入力します。（ここでは、simpleと入力します）「次へ」をクリックします。（デフォルトで、基本パスにもその値がセットされます。基本パスは任意に変更可能です）
![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/d5e8c53b-87e6-0253-8047-019f7d6e70a4.png)

5. 「セキュア」の画面で、そのまま「次へ」をクリックします。（「クライアントIDを使用した保護」「CORS」のチェックボックスは、どちらもチェックした状態のままにします）
![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/8b3ba797-3a67-ba4b-666a-7c2c904c5272.png)

6. API定義が作成されます。右下の「APIの編集」をクリックします。
![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/3e41f8ac-18ef-7fc1-692c-f82edbefb3e3.png)

7. API編集画面が表示されるので、「ゲートウェイ」タブをクリックします。
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/66ffad7a-dd4d-b67a-817b-d1a0ffd8eb45.png)
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/44a87603-753a-fb37-9cfc-15aedc647c26.png)

8. 左端のメニューで「ポリシー」が選択されている状態で、右側のアセンブリー・フロー内にすでに配置されている「Invoke」 ポリシーをクリックし、「Invoke」ポリシー右上に表示される「削除」ポップアップ・アイコン（ゴミ箱のようなアイコン）をクリックしてInvokeポリシーを削除します。右上の「保存ボタン」をクリックします。
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/781d3c29-c35f-725c-e40f-0c5a5f7b5d26.png)
![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/9273f194-d163-5cd8-5663-7187a8cda11c.png)
![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/15810b35-f4f5-fb27-51a8-844cd7a3176e.png)

9. アセンブリ・フローの右上にある「オフライン」トグルスイッチをクリックして、オンラインに変更します。（このタイミングで、このAPI定義がSandboxカタログ上(API Gateway上)に公開され、外部からのAPI呼び出しを受け付ける状態になります）
![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/e8f53fd6-ea52-271f-a75b-64155c21ea78.png)

10. アセンブリフロー上部にあるテストボタン(丸の中に三角のあるボタン)をクリックし、テスト・パネルを表示します。
![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/2641431a-71dc-4ebf-2b3a-d00e24154305.png)

11. テスト・パネル上の「操作」で「get/」を選択し、「呼び出し」をクリックします。
![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/39b998f2-fbf5-7197-4948-4cfb881e5c71.png)
![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/580c7b31-0bdd-6d5b-a071-87b4d2bdc053.png)

12. 環境が適切に構成されていれば、応答として、状況コード 200 OKが戻されます。（応答電文を定義してないので、ヘッダーだけが戻されます）
![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/6e561c3c-97ad-4001-c724-4cc58b05591e.png)
![Screenshot 2022-10-19 at 16-53-40 API Connect.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193979/9d5da1f8-933f-e81c-aa9e-a0e9cbb8c1b4.png)

13. 以上で、簡易なAPI呼び出しによる動作確認は完了です。トグルをオフラインに戻せば、API定義がSandboxカタログ上から削除されます。


# まとめ

一般的なAPI定義においては、Invokeポリシーをそのまま利用し、バックエンドAPIを呼び出します。
さらに、このアセンブリ・フロー内では、分岐やメッセージのフォーマット変換などの処理を処理ポリシーを配置してフローとして構成して実装できます。

製品の各コンポーネントや機能については製品ドキュメントを参照してください。
[IBM API Connect Enterprise as a Service](https://www.ibm.com/docs/en/api-connect/saas
 "IBM API Connect Enterprise as a Service")

なお、現在のIBM API Connect as a Service on AWSにおいては、通常製品で提供されている機能のうち、一部機能で制約がありますのでご注意ください。(GatewayScriptポリシーやXSLTポリシーなどがサポートされない、など)
詳細については、製品ドキュメントを参照してください。
[Known limitations (This documentation applies to IBM® API Connect Enterprise as a Service)](https://www.ibm.com/docs/en/api-connect/saas?topic=overview-known-limitations "Known limitations")

引き続き、開発者ポータルの有効化と利用についてご紹介します。
[IBM API Connect as a Service on AWS 試用版を使ってみる (開発者ポータルの有効化))](
https://qiita.com/myamane/items/ee55b5066e192234b716 "IBM API Connect as a Service on AWS 試用版を使ってみる (開発者ポータルの有効化)")