
const kinesis_client = new KinesisClient({
region: process.env.AWS_REGION,
credentials: {
accessKeyId: process.env.AWS_ACCESS_KEY,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
},
});
위와 같이 kinesisClient를 initialize 해줘야 사용 할 수 있는데, .env.local 에 저장한 엑세스 키라던지 등이 제대로 불러와 지지 않았다.
StackOverflow 를 열심히 찾아본 결과, 아래와 같이 next.config.js 에 module.exports 를 추가 해 주니 값이 잘 들어오는 것을 확인할 수 있었다.
module.exports = {
env: {
AWS_ACCESS_KEY: process.env.AWS_ACCESS_KEY,
AWS_SECRET_ACCESS_KEY: process.env.AWS_SECRET_ACCESS_KEY,
AWS_REGION: process.env.AWS_REGION,
KAKAO_KEY: process.env.KAKAO_KEY,
GOOGLE_ANALYTICS: process.env.GOOGLE_ANALYTICS,
}
};
export async function sendLogData(
session_id,
identifier,
user_agent,
device_kind,
referer,
page_name,
event_type,
object,
object_with,
object_container,
customjson
) {
const happyNewYear = new Date();
const year = happyNewYear.getFullYear();
const month = happyNewYear.getMonth() + 1;
const date = happyNewYear.getDate();
const p_date_str = `${year}-${month >= 10 ? month : "0" + month}-${
date >= 10 ? date : "0" + date
}`;
// YYYY-MM-DD hh:mm:ss.zzzZ
// 현재시간
const today = new Date();
// 현재시간에서 9시간 추가
const addHours = today.setHours(today.getHours() + 9);
// 출력형식변경
const setUpTime = today.toISOString().replace("T", " ").replace("Z", "");
const params = {
StreamName: "client-log-data-stream",
Data: Buffer.from(
JSON.stringify({
created_at: setUpTime,
session_id: session_id,
identifier: identifier,
user_agent: user_agent,
device_kind: device_kind, //D00:dweb D01:mweb
app_version: API.app_version,
referer: referer,
page_name: page_name,
event_type: event_type,
object: object,
object_with: object_with,
object_container: object_container,
customjson: customjson,
p_date: p_date_str,
})
),
PartitionKey: "p_date",
};
try {
const data = await kinesis_client.send(new PutRecordCommand(params));
} catch (error) {
console.log(error);
}
}