aws-cdk-neuronx-patterns
Version:
> [!WARNING] > This library is experimental module.
47 lines • 6.12 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NeuronOptimizedMachineImage = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const aws_cdk_lib_1 = require("aws-cdk-lib");
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
const ssm = require("aws-cdk-lib/aws-ssm");
const custom_resources_1 = require("aws-cdk-lib/custom-resources");
const constructs_1 = require("constructs");
const path = require("path");
class NeuronOptimizedMachineImage extends constructs_1.Construct {
get imageId() {
return this.resource.getAttString("image_id");
}
constructor(scope, id) {
super(scope, id);
const provider = new custom_resources_1.Provider(this, "NeuronxAmiProvider", {
onEventHandler: new aws_lambda_1.SingletonFunction(this, "NeuronxAmiFunction", {
code: aws_lambda_1.Code.fromAsset(path.join(__dirname, "private/neuronx-ami")),
handler: "index.onEvent",
runtime: aws_lambda_1.Runtime.NODEJS_LATEST,
uuid: "08c9850a-6f13-4ed4-9e2d-7888d7b5a258",
}),
});
this.resource = new aws_cdk_lib_1.CustomResource(this, "NeuronxAmi", {
serviceToken: provider.serviceToken,
resourceType: "Custom::NeuronxAmi",
properties: {
image: ssm.StringParameter.fromStringParameterName(this, "Image", "/aws/service/ecs/optimized-ami/amazon-linux-2023/neuron/recommended").stringValue,
},
});
}
getImage(_scope) {
return {
imageId: this.imageId,
osType: aws_ec2_1.OperatingSystemType.LINUX,
userData: aws_ec2_1.UserData.forLinux(),
};
}
}
exports.NeuronOptimizedMachineImage = NeuronOptimizedMachineImage;
_a = JSII_RTTI_SYMBOL_1;
NeuronOptimizedMachineImage[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronOptimizedMachineImage", version: "0.0.23" };
NeuronOptimizedMachineImage.size = aws_cdk_lib_1.Size.gibibytes(30);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV1cm9uLW9wdGltaXplZC1tYWNoaW5lLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jhc2UvbmV1cm9ueC9uZXVyb24tb3B0aW1pemVkLW1hY2hpbmUtaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBbUQ7QUFDbkQsaURBSzZCO0FBQzdCLHVEQUEwRTtBQUMxRSwyQ0FBMkM7QUFDM0MsbUVBQXdEO0FBQ3hELDJDQUF1QztBQUN2Qyw2QkFBNkI7QUFFN0IsTUFBYSwyQkFDWCxTQUFRLHNCQUFTO0lBS2pCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsSUFBSSwyQkFBUSxDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRTtZQUN4RCxjQUFjLEVBQUUsSUFBSSw4QkFBaUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7Z0JBQ2hFLElBQUksRUFBRSxpQkFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO2dCQUNqRSxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsT0FBTyxFQUFFLG9CQUFPLENBQUMsYUFBYTtnQkFDOUIsSUFBSSxFQUFFLHNDQUFzQzthQUM3QyxDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNyRCxZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDbkMsWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQ2hELElBQUksRUFDSixPQUFPLEVBQ1AscUVBQXFFLENBQ3RFLENBQUMsV0FBVzthQUNkO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxNQUFpQjtRQUN4QixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE1BQU0sRUFBRSw2QkFBbUIsQ0FBQyxLQUFLO1lBQ2pDLFFBQVEsRUFBRSxrQkFBUSxDQUFDLFFBQVEsRUFBRTtTQUM5QixDQUFDO0lBQ0osQ0FBQzs7QUF2Q0gsa0VBd0NDOzs7QUFwQ2lCLGdDQUFJLEdBQUcsa0JBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgU2l6ZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgSU1hY2hpbmVJbWFnZSxcbiAgTWFjaGluZUltYWdlQ29uZmlnLFxuICBPcGVyYXRpbmdTeXN0ZW1UeXBlLFxuICBVc2VyRGF0YSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvZGUsIFJ1bnRpbWUsIFNpbmdsZXRvbkZ1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCAqIGFzIHNzbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzbVwiO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuZXhwb3J0IGNsYXNzIE5ldXJvbk9wdGltaXplZE1hY2hpbmVJbWFnZVxuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElNYWNoaW5lSW1hZ2VcbntcbiAgc3RhdGljIHJlYWRvbmx5IHNpemUgPSBTaXplLmdpYmlieXRlcygzMCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IEN1c3RvbVJlc291cmNlO1xuICBnZXQgaW1hZ2VJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5nZXRBdHRTdHJpbmcoXCJpbWFnZV9pZFwiKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgUHJvdmlkZXIodGhpcywgXCJOZXVyb254QW1pUHJvdmlkZXJcIiwge1xuICAgICAgb25FdmVudEhhbmRsZXI6IG5ldyBTaW5nbGV0b25GdW5jdGlvbih0aGlzLCBcIk5ldXJvbnhBbWlGdW5jdGlvblwiLCB7XG4gICAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsIFwicHJpdmF0ZS9uZXVyb254LWFtaVwiKSksXG4gICAgICAgIGhhbmRsZXI6IFwiaW5kZXgub25FdmVudFwiLFxuICAgICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU19MQVRFU1QsXG4gICAgICAgIHV1aWQ6IFwiMDhjOTg1MGEtNmYxMy00ZWQ0LTllMmQtNzg4OGQ3YjVhMjU4XCIsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgICB0aGlzLnJlc291cmNlID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIFwiTmV1cm9ueEFtaVwiLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206Ok5ldXJvbnhBbWlcIixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgaW1hZ2U6IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBcIkltYWdlXCIsXG4gICAgICAgICAgXCIvYXdzL3NlcnZpY2UvZWNzL29wdGltaXplZC1hbWkvYW1hem9uLWxpbnV4LTIwMjMvbmV1cm9uL3JlY29tbWVuZGVkXCIsXG4gICAgICAgICkuc3RyaW5nVmFsdWUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldEltYWdlKF9zY29wZTogQ29uc3RydWN0KTogTWFjaGluZUltYWdlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW1hZ2VJZDogdGhpcy5pbWFnZUlkLFxuICAgICAgb3NUeXBlOiBPcGVyYXRpbmdTeXN0ZW1UeXBlLkxJTlVYLFxuICAgICAgdXNlckRhdGE6IFVzZXJEYXRhLmZvckxpbnV4KCksXG4gICAgfTtcbiAgfVxufVxuIl19