AWSAWS CDK

AWS CDKでAPI GatewayにAPI Keyを設定する

Serverless Frameworkだと簡単にできるやつです。 しかしこれ、結構内部でよしなにされている様子で、AWS CDK(というかCloudFormation)で書こうとすると結構手間です。 ドキュメントがなく […]

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

Serverless Frameworkだと簡単にできるやつです。

provider:
  name: aws
  runtime: nodejs12.x
  apiKeys:
    - Key
  
functions:
  hello:
    handler: handler.hello
    events:
      - http:
          path: hello
          method: get
          private: true

しかしこれ、結構内部でよしなにされている様子で、AWS CDK(というかCloudFormation)で書こうとすると結構手間です。


import { LambdaRestApi, LambdaIntegration, ApiKeySourceType } from '@aws-cdk/aws-apigateway';

    // API Gatewayの作成
    const api = new LambdaRestApi(this, 'PI', {
      handler: lambdaFunction,
      proxy: false,
      restApiName: 'API',
      apiKeySourceType: ApiKeySourceType.HEADER
    })

    // APIのパス・メソッド定義
    api.addResource('hello').addMethod('GET', new LambdaIntegration(lambdaFunction), {
      apiKeyRequired: true
    })

    // APIキーの作成
    const apiKey =  api.addApiKey('APIKey', {
      apiKeyName: 'BuildAPIKey',
    })

    // 使用量プランを使って関連付け
    api.addUsagePlan('ForAPIKey', {
      apiKey,
    }).addApiStage({
      stage: api.deploymentStage
    })

    // APIキーを出力
    new CfnOutput(this, 'APIKey', {
      value: apiKey.keyId
    })

ドキュメントがなくて半日近くハマったので覚書

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

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

Related Category posts