🔥

OpenAPIとAWS CDKを用いてREST APIを作成する(Opensearch接続・カスタムドメイン)

2023/05/26に公開

概要

OpenAPIとAWS CDKを用いてREST APIを作成する機会がありましたので、その備忘録です。以下の記事がとても参考になりました。

https://zenn.dev/taroman_zenn/articles/91879cec40627c

今回作成したものは以下のリポジトリで公開しています。

https://github.com/nakamura196/CdkOpenapi

Opensearchとの接続

以下のLambdaで実装しています。

https://github.com/nakamura196/CdkOpenapi/blob/main/lambda/search.ts

Lambdaに環境変数を渡す必要があり、lib以下のtsファイルで以下のように記述しました。

...
const searchFn = new NodejsFunction(this, "search", {
      entry: path.join(__dirname, "../lambda/search.ts"),
      runtime: Runtime.NODEJS_18_X,
      handler: "handler",
      environment: {
        ELASTIC_HOST: process.env.ELASTIC_HOST || "",
        ELASTIC_USERNAME: process.env.ELASTIC_USERNAME || "",
        ELASTIC_PASSWORD: process.env.ELASTIC_PASSWORD || "",
        ELASTIC_INDEX_NAME: process.env.ELASTIC_INDEX_NAME || "",
      },
    });
...

カスタムドメイン

以下のファイルを参考にしてください。間違いなどがあるかもしれませんが、カスタムドメインの登録からAPI Gatewayへの設定も行ってみました。

https://github.com/nakamura196/CdkOpenapi/blob/main/lib/cdk-openapi-stack.ts

まとめ

色々と中途半端なリポジトリではありますが、参考になる部分があれば幸いです。

Discussion