databricks-cdk
Version:
With this package databricks resources can be deployed with cdk
34 lines (33 loc) • 1.51 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DockerImage = void 0;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const os_1 = __importDefault(require("os"));
const crypto_1 = require("crypto");
const aws_cdk_lib_1 = require("aws-cdk-lib");
class DockerImage {
static generate(version) {
const dockerTempDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), "databricks-cdk-lambda-"));
const dockerFile = path_1.default.join(dockerTempDir, "Dockerfile");
const lambdaVersion = version || DockerImage.version();
fs_1.default.writeFileSync(dockerFile, `FROM floriday/databricks-cdk-lambda:${lambdaVersion}`);
// Random hash will trigger a rebuild always, only need if dev is used
const randomHash = (lambdaVersion == "dev") ? (0, crypto_1.randomUUID)() : "";
return aws_cdk_lib_1.aws_lambda.DockerImageCode.fromImageAsset(dockerTempDir, {
file: "Dockerfile",
buildArgs: {
version: lambdaVersion,
randomHash: randomHash,
}
});
}
static version() {
const pj = require("../package.json"); // eslint-disable-line @typescript-eslint/no-var-requires
return pj.version;
}
}
exports.DockerImage = DockerImage;