アマゾンウェブサービスを使用すると、簡単なウェブアプリケーションのプロトタイプをすばやく作成できます。たとえば、簡単なモバイルアプリケーション用のAPIを数分で作成できます。
多数のDynamoDBおよび
Gateway APIを使用します (Lambda関数は使用しません!)データベースへのGETおよびPOSTリクエストを構成し、その中のデータの読み取り、書き込み、変更を可能にします。

まず、AWSに
登録してコンソールにログインする必要があります。
DynamoDBデータベースからサービスの作成を開始し、[
テーブルの
作成 ]ボタンをクリックし、
apiDataテーブルの名前を入力します(マニュアルでは自分の名前を使用します。他の名前を指定できます)。エントリを追加するメインキー:
userIDとチェックボックス
デフォルト設定を使用します 。
DynamoDBでは 、指定されたキーによって行がテーブルに追加されますが、任意の数のパラメーターを追加することができ、必ずしも異なるキーのデータ構造と一致する必要はありません。 この場合、指定されたuserIDの各ユーザーに対して、このユーザーを説明するデータを追加できます。
次に、
Identity and Access Managementサービスでいわゆるロールを作成する必要があり
ます 。 左側のメニューで、[役割]セクションを選択し、[
新しい役割を
作成 ]ボタンをクリックします。 その名前
-dynamoAPIを指定し、[
AWSサービスロール]セクションで[次のステップ]をクリックした後、
Amazon API Gatewayを選択し、[次のステップ]をダブルクリックして、最後に[
ロールの作成 ]を選択します。
arn:aws:iam :: 000000000000:role / roleNameの形式で指定された
ロールARN値に関心があります。 この値は、クエリをデータベースにリンクするときに使用する必要があるため、書き留めてください。 次に、このロールのアクセスポリシーを作成する必要があります。これは、[
インラインポリシー ]セクションの[
権限 ]タブで行い、展開して[
ここをクリック ]を
クリックします 。

[
ポリシージェネレーター ]セクションで、[
選択 ]ボタンをクリックし、開いたページで
Amazon DynamoDBサービスを選択して、次の
アクションを指定します。
- DeleteItem
- Getitem
- Putitem
- 問い合わせ
- スキャン
- 更新項目
APIを使用して他のアクションを実行できるようにしたい場合があります。その場合は
、このヘルプページでそれら
を調べることができます。
Amazonリソース名項目については、ここでテーブルのARN([
概要 ]タブにある)を指定するか、作成されたロールを持つユーザーがアカウントのすべてのテーブルにアクセスできるようにする
*を指定できます。 [
ステートメントの
追加 ]ボタンをクリックし、開いたページで[
次のステップ ]-[
ポリシーの適用 ]をクリックします。 これでロールの構成が完了しました!
API Gatewayサービスを使用した
APIの作成に移りましょう。 青い[
APIの作成 ]ボタンをクリックし、開いたページで名前-APIを指定して、ページの下部にある[
APIの
作成 ]ボタンをクリックし
ます 。 次に、リクエストでアクセスできるリソースを作成し、[
アクション ]ボタンをクリックして[
リソースの作成 ]を選択する必要があります。

このリソースを
userと呼び、
ユーザーに関する情報が含まれます。特定のユーザーにアクセスするには、ユーザーIDをパスパラメーターとして指定する必要があります。 API Gatewayサービスでこのようなパラメーターを作成するには、作成済みのユーザーより1レベル低い新しいリソースを作成し、
リソース名と
リソースパスとして
{userid}を指定する必要があります(この形式で名前を指定すると、リソースパスは自動的に置き換えられます
- userid- 、pathパラメーターの目的のフォームを手動で指定する必要があります)。

次に、新しいユーザーのレコードを作成するメソッドを作成します。そのために
{userid}リソースを選択し、[
アクション ]ボタンをクリックして[
メソッドの作成 ]を選択し、タイプ
-POSTを指定してチェックマークをクリックして作成します。 表示される設定メニューの[統合タイプ]セクションで、[
高度なスポイラーを
表示 ]を開き、[
AWSサービスプロキシ]を選択する必要があります。 設定:
- AWSリージョンは、データベースが配置されているリージョンを示します(デフォルトではus-east-1 、表の概要セクションで確認できます)
- AWSサービス :DynamoDB
- AWSサブドメイン :空白のままにします
- HTTPメソッド :POST(データの受信を含む、DynamoDBへの呼び出しに使用)
- アクションタイプ :アクション名を使用
- アクション :PutItem(新しいレコードの作成/指定されたキーで値全体を上書きするために使用)
- 実行ロール : arn:aws:iam :: 000000000000:role / roleNameの形式で作成したロールを指定します

これらの設定を保存したら、最初に
Method Requestの最初の正方形に移動し、
API Key Required項目でTrueを選択し、チェックマークをクリックして設定を保存する必要があります-これは認証トークンを使用して外部からこのメソッドにアクセスするために必要ですすべてのメソッド!)。 戻って2番目の
統合リクエストスクエアに移動し、DynamoDBでリクエスト自体を設定します。 開いたページで、一番下までスクロールして[
ボディマッピングテンプレート ]セクションを開き、[
マッピングテンプレートの
追加 ]ボタンをクリックし、
コンテンツタイプ :
application / jsonを指定します。入力フィールドでリクエストパラメーターを指定し、次のコードを使用して新しいレコードを作成します:
{ "TableName": "apiData", "Item": { "userID": { "S": "$input.params('userid')" }, "parameter": { "S": "$input.path('$.parameter')" } }, "ReturnValues": "ALL_OLD" }
ここで、変更を行うテーブルの名前を示します。データが入力されるキーは最初に示されます:
userID 、その値は
useridパスパラメータから取得されます。
パラメータキーのデータは、リクエスト本文から取得され、指定されたユーザーのデータベースの同じ列に追加されます。 回答として-指定されたキーが存在する場合、そのキーに対して以前の値が送信されます。 そのユーザー名を持つユーザーが存在しなかった場合、空の答えが返されます。
残っているのは、リクエストの動作を確認することだけです。そのためには、ページの上部で、戻るボタンと4つの四角の右側をクリックします-ハリーポッターアイコンのあるテストボタンをクリックします。

開いたウィンドウで、
Pathパラメーターの値を指定する必要があり
ます -これは作成/再作成するユーザーの名前です(
PutItemは指定されたキーで行全体を上書きします)-リクエストの本文を指定します:
{ "parameter": "112233" }
リクエストは成功しました。エラーなしで空のボディを含むレスポンスを受け取りました!
DynamoDBに移動すると、[
アイテム ]タブで、作成したユーザーが表示されます。

ユーザーデータを読み取るには、
{userid}リソースのフレームワーク内で、
Action -
Queryを使用してGETメソッドを作成し、統合リクエストを構成する必要があります(この場合、データベースリクエストはPOSTメソッドを使用して行われます!) :
{ "TableName": "apiData", "KeyConditionExpression": "userID = :v1", "ExpressionAttributeValues": { ":v1": { "S": "$input.params('userid')" } } }
他のすべての行を変更せずに特定のユーザーの一部のパラメーター値を変更する場合は、
Actionタイプ
UpdateItemおよび次のマッピングテンプレートでPOSTメソッドを使用することもできます。
{ "TableName": "apiData", "Key": { "userID": { "S": "$input.params('userid')" } }, "UpdateExpression": "set token_proof = :tkn", "ExpressionAttributeValues": { ":tkn": { "S": "$input.path('$.token')" } }, "ReturnValues": "UPDATED_NEW" }
この場合、リクエストは成功した場合、ユーザーに関する更新されたすべてのデータを例から返します。このメソッドは、アプリケーションでFacebookを介してユーザーを認証するときにappsecret_proofを格納するために使用できます。
実際、すべての基本的なAPIユースケースは、これらの例に基づいて作成できます。 あとは、外部からAPIにアクセスするだけです。これを行うには、APIのメニューでお気に入りの[
アクション ]ボタンをクリックし、[APIを
デプロイ ]を選択し
ます 。 以下を指定します。
- 展開段階 :[新しい段階]
- ステージ名 :apiRelease(またはその他)
[
デプロイ]をクリックし、
m00000000a.execute-api.us-east-1.amazonaws.com /
apiReleaseのような
呼び出しURLを取得し
ます 。 このアドレスにリクエストを行うには(承認トークンが必要で、受信するには)、左側のメニューの[
APIキー ]セクションに移動し、[
作成 ]ボタンをクリックして、何らかの方法でキーに名前を付けて保存します。 次に、
API Stage Associationの表示されたセクションで、目的のAPIと新しく作成されたシーンを選択し、[
追加 ]ボタンをクリックします。 左側のメニューからAPIに戻り、[
アクション] -> [
APIの デプロイ ]を選択し、作成済みのステージを選択して[
デプロイ ]をクリックします。 出来上がり!
これで、リクエストに値としてトークンを含むヘッダー
x-api-keyを追加することにより、外部からAPIにリクエストを行うことができます。 作成されたユーザーに関するデータを取得するには、アドレス
m00000000a.execute-api.us-east-1.amazonaws.com/apiRelease/user/newUserOneに対応するGETリクエストを作成するだけで十分です。答えに関するユーザーに関するすべての情報を取得できます。 したがって、ほんの数分で、データベースにアクセスするための簡単なAPIを作成できます。このAPIを使用して、新しいアプリケーションや、複雑なデータ構造を必要としない他のサービスをテストできます。 もちろん、より複雑なプロジェクトの場合は、より適切なツールを使用する価値があります。