
概要
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
まとめ
色々と中途半端なリポジトリではありますが、参考になる部分があれば幸いです。