[AWS Labs探訪] API Developer PortalをAWSで構築する

AWSのサービスを利用して、APIの開発者ポータルを構築するプロジェクトを実行してみます。 AWS Labs探訪とは GitHubには、[awslabs]というAWSが公開しているOrganizationsがあります。こ […]

広告ここから
広告ここまで

目次

    AWSのサービスを利用して、APIの開発者ポータルを構築するプロジェクトを実行してみます。

    AWS Labs探訪とは

    GitHubには、[awslabs]というAWSが公開しているOrganizationsがあります。ここにはAWSサービスを利用したサンプルコードや新しいSDK、オフィシャルイベントで開催されたワークショップのサンプルコードといった様々なコードが公開されています。有名所では、SAMなどもこのOrganizationsにホストされています。

    ここにはそのまま使えるものからprodで使うなと書かれたものまで玉石混交です。AWS Labs探訪は、ここにDiveしてみて仕事に使えそうなものがないか探してみようという企画です。

    今回紹介するプロジェクト

    AWS API Gateway Developer Portal

    SAMを用いて、APIの開発者ポータルを作ることができるプロジェクトです。

    プロジェクトをセットアップする

    まずはGitからダウンロードします。

    $ git clone [email protected]:awslabs/aws-api-gateway-developer-portal.git
    $ cd aws-api-gateway-developer-portal
    $ npm install

    SAMでプロジェクトをAWSへデプロイ

    SAMでリソースが管理されていますので、sam package -> sam deployでAWSへデプロイします。parameter-overridess3-bucketなど、書換が必要な箇所がいくつかありますので注意してください。

    $ sam package --template-file ./cloudformation/template.yaml \
      --output-template-file ./cloudformation/packaged.yaml \
      --s3-bucket YOUR_S3_BUCKET_NAME
    
    $ sam deploy --template-file ./cloudformation/packaged.yaml \
      --stack-name YOUR_STACK_NAME \
      --s3-bucket YOUR_S3_BUCKET_NAME \
      --capabilities CAPABILITY_NAMED_IAM \
      --parameter-overrides DevPortalSiteS3BucketName="custom-prefix-dev-portal-static-assets" ArtifactsS3BucketName="custom-prefix-dev-portal-artifacts" CognitoDomainNameOrPrefix="custom-prefix"

    --parameter-overridesで指定するS3BucketNameが2つありますが、作成済みのバケット名を指定すると、エラーになりますのでこちらも要注意です。

    sam deployはCloudFrontを作成する関係でかなり時間がかかります。ちょっと休憩するくらいがよいでしょう。

    Successfully created/updated stack - STACK_NAMEが表示されたら完了です。

    開発者ポータルへアクセスする

    ドキュメントにウェブサイトのURLを取得する方法が記載されているので、試してみましょう。

    $ aws cloudformation describe-stacks --query "Stacks[?StackName=='YOUR_STACK_NAME'][Outputs[?OutputKey=='WebsiteURL']][][].OutputValue"
    [
        "https://xxxxxx.cloudfront.net"
    ]

    この状態ではまだAPIはなにも登録されていません。

    Registerでアカウントを作ることができますが、Cognito User Pools管理画面から、Groupに追加しないとAPI管理ができません。

    Admin Panelが表示されると、デプロイされているAPIからデプロイするかしないかなどを設定できます。

    APIの表示はSwagger UIに近いです。

    使いどころなど

    Developer Portal(開発者ポータル)の名前の通り、APIのポータルサイトが作れます。API Keyを発行して、使用量プランの設定などもできるみたいですので、そのあたりもこれから触っていこうと思います。

    カスタマイズ領域としては、APIキーを有料化するところなどでしょうか。

    StripeやWeb Payなどのフォームを追加して、契約状況に応じたAPIの表示などをカスタマイズできるとよいかなと思います。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark