

# API Gateway の使用を開始する
<a name="getting-started"></a>

この入門エクササイズでは、サーバーレス API を作成します。サーバーレス API を使用すると、サーバーのプロビジョニングや管理に時間をとられる事なく、アプリケーションに集中することができます。このエクササイズの所要時間は 20 分未満で、[AWS の無料利用枠内](https://aws.amazon.com/free/)で実行できます。

はじめに、AWS Lambda コンソールを使用して Lambda 関数を作成します。次に、API Gateway コンソールを使用して HTTP API を作成します。次に、API を呼び出します。

**注記**  
この演習では、HTTP API を使用します。API Gateway は、より多くの機能を含む REST API もサポートしています。REST API を使用するチュートリアルについては、「[REST API コンソールの使用を開始する](getting-started-rest-new-console.md)」を参照してください。  
HTTP API と REST API の違いの詳細については、「[REST API と HTTP API のどちらかを選択する](http-api-vs-rest.md)」を参照してください。

HTTP API を呼び出すと、API Gateway はリクエストを Lambda 関数にルーティングします。Lambda は Lambda 関数を実行し、API Gateway に応答を返します。それから API Gateway はレスポンスを返します。

![\[このチュートリアルで作成する HTTP API の概要。\]](http://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/images/getting-started-overview.png)


このエクササイズを完了するには、AWS アカウントと、コンソールへのアクセス権がある AWS Identity and Access Management ユーザーが必要です。詳細については、「[API Gateway を使用するようにセットアップする](setting-up.md)」を参照してください。

**Topics**
+ [ステップ 1: Lambda 関数を作成する](#getting-started-create-function)
+ [ステップ 2: HTTP API を作成する](#getting-started-create-api)
+ [ステップ 3: API をテストする](#getting-started-invoke-api)
+ [（オプション）ステップ 4: クリーンアップする](#getting-started-cleanup)
+ [次のステップ](#getting-started-next-steps)

## ステップ 1: Lambda 関数を作成する
<a name="getting-started-create-function"></a>

API のバックエンドには Lambda 関数を使用します。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。

この例では、Lambda コンソールから既定の Node.js 関数を使用します。

**Lambda 関数を作成するには**

1. Lambda コンソール ([https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda)) にサインインします。

1. [**関数の作成**] を選択します。

1. [**関数名**] に「**my-function**」と入力します。

1. 他のすべてのオプションについては、デフォルトの設定を使用します。

1. [**関数の作成**] を選択します。

この例の関数は、クライアントへの応答`200`とテキスト`Hello from Lambda!`を返します 。

関数の応答が [ API Gateway が必要とする形式](http-api-develop-integrations-lambda.md#http-api-develop-integrations-lambda.response)と一致している限り、Lambda 関数を変更できます。

デフォルトの Lambda 関数コードは、次のようになります。

```
export const handler = async (event) => {
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};
```

## ステップ 2: HTTP API を作成する
<a name="getting-started-create-api"></a>

次に、HTTP API を作成します。API Gateway は、REST API と WebSocket API もサポートしますが、このエクササイズでは HTTP API が最適です。REST API は HTTP API よりも多くの機能をサポートしますが、この演習では、これらの機能は必要ありません。HTTP API は低価格で提供できるように最小限の機能で設計されています。WebSocket API は、全二重通信のためにクライアントとの持続的接続を維持します。この例では必須ではありません。

HTTP API は、Lambda 関数の HTTP エンドポイントを提供します。API Gateway は Lambda 関数にリクエストをルーティングし、関数の応答をクライアントに返します。



**HTTP API を作成するには**

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway) で API Gateway コンソールにサインインします。

1. 次のいずれかを行ってください。
   + 最初の API を作成するには、[** HTTP API **] で [** 構築 **] を選択します。
   + 以前に API を作成した場合は、[** API の作成 **] を選択し、[** HTTP API **] の [**構築**] を選択します。

1. [** 統合 **] で、[** 統合の追加 **] を選択します。

1. ** Lambda **を選択します。

1. [**Lambda 関数**] に「**my-function**」と入力します。

1. [**API 名**] に「**my-http-api**」と入力します。

1. [**Next (次へ)**] を選択します。

1. API Gateway が作成した*ルート*を確認し、[** 次へ **] を選択します。

1. API Gateway * によって作成されるステージを確認し *、[** Next **] を選択します。

1. [**Create**] を選択します。

これで、クライアントからのリクエストを受信できる Lambda 統合で HTTP API を作成しました。

## ステップ 3: API をテストする
<a name="getting-started-invoke-api"></a>

次に、API をテストして作動していることを確認します。シンプルにテストをするため、ウェブブラウザを使用して API を呼び出します。

**API をテストするために**

1. API Gateway コンソール ([https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)) にサインインします。

1. API を選択します。

1. API の呼び出し URL を書き留めます。  
![\[APIを作成すると、コンソールに API の呼び出し URL が表示されます。\]](http://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/images/getting-started-invoke-url.png)

1. API の呼び出し URL をコピーし、Web ブラウザーに入力します。呼び出し URL に Lambda 関数の名前を追加して、Lambda 関数を呼び出します。デフォルトでは、API Gateway コンソールは Lambda 関数`my-function`と同じ名前のルートを作成します。

   URL は次のようになります。`https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function`

   ブラウザが API に`GET`リクエストを送信します。

1. API の応答を確認します。ブラウザにテキスト`"Hello from Lambda!"`が表示されるはずです。

## （オプション）ステップ 4: クリーンアップする
<a name="getting-started-cleanup"></a>

不要なコストを回避するには、このエクササイズで作成したリソースを削除します。次の手順では、HTTP API、Lambda 関数、および関連リソースを削除します。

**HTTP API を削除するには**

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway) で API Gateway コンソールにサインインします。

1. [** API **] ページで、API を選択します。[** Actions**] を選択して、[**Delete**] を選択します。

1. [**削除**] を選択します。

**Lambda 関数を削除するには**

1. Lambda コンソール ([https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda)) にサインインします。

1. [** 関数 **] ページで、関数を選択します。[** Actions**] を選択して、[**Delete**] を選択します。

1. [**削除**] を選択します。

**Lambda 関数のロググループを削除するには**

1. Amazon CloudWatch コンソールで、[[ ロググループページ](https://console.aws.amazon.com/cloudwatch/home#logs:)]を開きます。

1. [**ロググループ**] ページで、関数のロググループ (`/aws/lambda/my-function`) を選択します。[**Actions**] (アクション) を選択してから、[**Delete log group**] (ロググループの削除) を選択します。

1. [**削除**] を選択します。

**Lambda 関数の実行ロールを削除するには**

1. AWS Identity and Access Management コンソールの [[Roles](https://console.aws.amazon.com/iam/home?#/roles)] (ロール) ページを開きます。

1. 関数のロールを選択します (例: `my-function-31exxmpl`)。

1. [**ロールの削除**] を選択します。

1. [**はい、削除します**] を選択します。

CloudFormation または AWS SAM を使用して、AWS リソースの作成とクリーンアップを自動化できます。CloudFormation テンプレートの例については、「[サンプル CloudFormation テンプレート](https://github.com/awsdocs/amazon-api-gateway-developer-guide/tree/main/cloudformation-templates)」を参照してください。

## 次のステップ
<a name="getting-started-next-steps"></a>

この例では、AWS マネジメントコンソール を使用してシンプルな HTTP API を作成しました。HTTP API は Lambda 関数を呼び出し、クライアントに応答を返します。

API Gateway の使用を続けたまま、次のステップに進んでください。
+ 以下を含む [API 統合の追加のタイプを設定する](http-api-develop-integrations.md)
  + [HTTP エンドポイント ](http-api-develop-integrations-http.md)
  + [VPC 内のプライベートリソース（Amazon ECS サービスなど）](http-api-develop-integrations-private.md)
  + [Amazon Simple Queue Service、AWS Step Functions、Kinesis Data Streams などの AWS サービス ](http-api-develop-integrations-aws-services.md)
+ [API へのアクセスを制御します。](http-api-access-control.md)
+ [API のログの有効化](http-api-logging.md)
+ [API のスロットリングを設定する ](http-api-throttling.md)
+ [カスタムドメインを作成して設定する](http-api-custom-domain-names.md)

コミュニティから Amazon API Gateway に関するヘルプを参照するには、[API Gateway Discussion Forum](https://repost.aws/tags/TAx94GNHn2R3Ot5Ab_HCvlng) を参照してください。このフォーラムにアクセスするには、AWS へのサインインが必要になることがあります。

AWS から直接 API Gateway のサポートを得るには、[AWS Support ページ](https://aws.amazon.com/premiumsupport/)でサポートオプションを参照してください。

また、[よくある質問](https://aws.amazon.com/api-gateway/faqs/) (FAQ) を参照したり、[直接お問い合わせ](https://aws.amazon.com/contact-us/)いただくこともできます。