
Overview
I had the opportunity to create a REST API using OpenAPI and AWS CDK, so this is a memo. The following article was very helpful.
https://zenn.dev/taroman_zenn/articles/91879cec40627c
The project created this time is published in the following repository.
https://github.com/nakamura196/CdkOpenapi
Connecting to OpenSearch
The implementation is done in the following Lambda.
https://github.com/nakamura196/CdkOpenapi/blob/main/lambda/search.ts
Environment variables need to be passed to the Lambda, and the following was written in the ts file under lib.
...
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 || "",
},
});
...
Custom Domain
Please refer to the following file. There may be some errors, but I also tried setting up a custom domain registration and configuring it for API Gateway.
https://github.com/nakamura196/CdkOpenapi/blob/main/lib/cdk-openapi-stack.ts
Summary
While this is a somewhat incomplete repository, we hope there are parts that may be helpful.