export function addCloudqueryUsageLambda()

in packages/cdk/lib/cloudquery-usage.ts [17:48]


export function addCloudqueryUsageLambda(
	scope: GuStack,
	props: CloudqueryUsageProps,
) {
	const app = 'cloudquery-usage';

	const { vpc, dbAccess, db, cloudqueryApiKey } = props;

	const lambda = new GuScheduledLambda(scope, 'CloudqueryUsage', {
		app,
		vpc,
		fileName: `${app}.zip`,
		handler: 'index.main',
		monitoringConfiguration: { noMonitoring: true },
		architecture: Architecture.ARM_64,
		runtime: Runtime.NODEJS_20_X,
		securityGroups: [dbAccess],
		environment: {
			DATABASE_HOSTNAME: db.dbInstanceEndpointAddress,
			QUERY_LOGGING: 'false', // Set this to 'true' to enable SQL query logging
			CQ_API_KEY_PATH: cloudqueryApiKey.secretName,
		},
		rules: [
			{
				schedule: Schedule.cron({ hour: '9', minute: '0' }),
			},
		],
	});

	cloudqueryApiKey.grantRead(lambda);
	db.grantConnect(lambda, 'cloudquery_usage');
}