信頼はずっと、挑戦はもっと。

お問い合わせ
TEL:03-3496-3888

BLOG コアテックの社員ブログ (毎週月曜~金曜更新中)

2020

12

5月

serverless frameworkで API GatewayのプライベートAPIを作成したい!

テクログ

プライベートAPI、便利ですね。

内部でいろいろやるだけなのに外に出したくないですし。


プライベートAPIをAPIGatewayで建てる場合、

手動での作成や、

既存で建ててあるAPIGatewayにリソースを追加することも可能ですが、

serverless frameworkでlambdaのデプロイと同時にAPI GatewayのプライベートAPIを作成したいですよね。


なのでやってみました。



全体的には

https://www.serverless.com/framework/docs/providers/aws/events/apigateway/

https://github.com/serverless/serverless/pull/5080

にあるのですが、

いろいろ摘んで探していかないといけないので書いておきます。


serverless.yml

が、このようになります!


最低限くらいの内容です。



service: internal-apigateway-test
provider:
  name: aws

  endpointType: private
  resourcePolicy:
    - Effect: Allow
      Principal: '*'
      Action: execute-api:Invoke
      Resource: arn:aws:execute-api:ap-northeast-1:<AWS account ID>:* #リソースにしぼってもいいです
      Condition:
        StringEquals:
          'aws:sourceVpce': vpce-<あらかじめ作成してあるVPC Endpoint です>

  runtime: python3.8
  region: ap-northeast-1
  role: ${opt:role_str, "arn:aws:iam::<AWS account ID>:role/aaaa"}

functions:
  main:
    handler: handler.lambda_handler
    name:  internal-apigateway-test

    description: "(sample)内部APIGateway+簡単なjsonを返すだけlambdaの作成"
    memorySize: 128
    timeout: 5

    events:
      - http:
          path: /
          method: get


ではよいslsライフを!



この記事を書いた人

画像:投稿者アイコン

tzwy

所 属:
WEBインテグレーション事業部
出身地:
saitama
仕事内容:
いろいろ検証、作成、障害対応とか品質向上とか

RELATED ARTICLE

関連記事

記事一覧へ