aws-cdk-neuronx-patterns 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isComplete = exports.onCreate = exports.onEvent = void 0;
4
+ // eslint-disable-next-line import/no-extraneous-dependencies
5
+ const client_batch_1 = require("@aws-sdk/client-batch");
6
+ const client = new client_batch_1.BatchClient({
7
+ region: process.env.AWS_DEFAULT_REGION,
8
+ });
9
+ const onEvent = async (event, _context, _callback) => {
10
+ console.log(event);
11
+ switch (event.RequestType) {
12
+ case "Create":
13
+ case "Update":
14
+ return (0, exports.onCreate)(event, _context, _callback);
15
+ case "Delete":
16
+ return {};
17
+ }
18
+ };
19
+ exports.onEvent = onEvent;
20
+ const onCreate = async (event) => {
21
+ console.log(event);
22
+ const now = new Date();
23
+ const job = await client.send(new client_batch_1.SubmitJobCommand({
24
+ jobName: `${now.getFullYear()}-${now.getMonth() + 1}-${now.getDate()}-${now.getHours()}-${now.getMinutes()}-${now.getSeconds()}`,
25
+ jobDefinition: event.ResourceProperties.jobDefinitionArn,
26
+ jobQueue: event.ResourceProperties.jobQueueArn,
27
+ }));
28
+ return {
29
+ jobId: job.jobId,
30
+ };
31
+ };
32
+ exports.onCreate = onCreate;
33
+ const isComplete = async (event) => {
34
+ if (event.RequestType === "Delete") {
35
+ return {
36
+ IsComplete: true,
37
+ };
38
+ }
39
+ const jobs = await client.send(new client_batch_1.DescribeJobsCommand({
40
+ jobs: [event.jobId],
41
+ }));
42
+ const job = jobs.jobs?.[0];
43
+ if (!job) {
44
+ throw new Error(`Job (${event.jobId}) is missing`);
45
+ }
46
+ switch (job.status) {
47
+ case "SUCCEEDED":
48
+ return {
49
+ IsComplete: true,
50
+ Data: {
51
+ ArtifactS3Url: event.ResourceProperties.artifactS3Url,
52
+ },
53
+ };
54
+ case "FAILED":
55
+ throw new Error(job.statusReason);
56
+ }
57
+ return {
58
+ IsComplete: false,
59
+ };
60
+ };
61
+ exports.isComplete = isComplete;
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJpdmF0ZS9hd2FpdC1jb21waWxlLWpvYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2REFBNkQ7QUFDN0Qsd0RBSStCO0FBTS9CLE1BQU0sTUFBTSxHQUFHLElBQUksMEJBQVcsQ0FBQztJQUM3QixNQUFNLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0I7Q0FDdkMsQ0FBQyxDQUFDO0FBQ0ksTUFBTSxPQUFPLEdBQTZCLEtBQUssRUFDcEQsS0FBSyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBQ1QsRUFBRTtJQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkIsUUFBUSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUIsS0FBSyxRQUFRLENBQUM7UUFDZCxLQUFLLFFBQVE7WUFDWCxPQUFPLElBQUEsZ0JBQVEsRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBRSxDQUFDO1FBQy9DLEtBQUssUUFBUTtZQUNYLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMsQ0FBQztBQWJXLFFBQUEsT0FBTyxXQWFsQjtBQUNLLE1BQU0sUUFBUSxHQUE2QixLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDaEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FDM0IsSUFBSSwrQkFBZ0IsQ0FBQztRQUNuQixPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDaEksYUFBYSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0I7UUFDeEQsUUFBUSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXO0tBQy9DLENBQUMsQ0FDSCxDQUFDO0lBQ0YsT0FBTztRQUNMLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztLQUNqQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBYlcsUUFBQSxRQUFRLFlBYW5CO0FBRUssTUFBTSxVQUFVLEdBQXVDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtJQUM1RSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbkMsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUM1QixJQUFJLGtDQUFtQixDQUFDO1FBQ3RCLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7S0FDcEIsQ0FBQyxDQUNILENBQUM7SUFDRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLEtBQUssQ0FBQyxLQUFLLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxRQUFRLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixLQUFLLFdBQVc7WUFDZCxPQUFPO2dCQUNMLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixJQUFJLEVBQUU7b0JBQ0osYUFBYSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhO2lCQUN0RDthQUNGLENBQUM7UUFDSixLQUFLLFFBQVE7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsT0FBTztRQUNMLFVBQVUsRUFBRSxLQUFLO0tBQ2xCLENBQUM7QUFDSixDQUFDLENBQUM7QUE3QlcsUUFBQSxVQUFVLGNBNkJyQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7XG4gIEJhdGNoQ2xpZW50LFxuICBEZXNjcmliZUpvYnNDb21tYW5kLFxuICBTdWJtaXRKb2JDb21tYW5kLFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWJhdGNoXCI7XG5pbXBvcnQge1xuICB0eXBlIENka0N1c3RvbVJlc291cmNlSGFuZGxlcixcbiAgdHlwZSBDZGtDdXN0b21SZXNvdXJjZUlzQ29tcGxldGVIYW5kbGVyLFxufSBmcm9tIFwiYXdzLWxhbWJkYVwiO1xuXG5jb25zdCBjbGllbnQgPSBuZXcgQmF0Y2hDbGllbnQoe1xuICByZWdpb246IHByb2Nlc3MuZW52LkFXU19ERUZBVUxUX1JFR0lPTixcbn0pO1xuZXhwb3J0IGNvbnN0IG9uRXZlbnQ6IENka0N1c3RvbVJlc291cmNlSGFuZGxlciA9IGFzeW5jIChcbiAgZXZlbnQsXG4gIF9jb250ZXh0LFxuICBfY2FsbGJhY2ssXG4pID0+IHtcbiAgY29uc29sZS5sb2coZXZlbnQpO1xuICBzd2l0Y2ggKGV2ZW50LlJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSBcIkNyZWF0ZVwiOlxuICAgIGNhc2UgXCJVcGRhdGVcIjpcbiAgICAgIHJldHVybiBvbkNyZWF0ZShldmVudCwgX2NvbnRleHQsIF9jYWxsYmFjaykhO1xuICAgIGNhc2UgXCJEZWxldGVcIjpcbiAgICAgIHJldHVybiB7fTtcbiAgfVxufTtcbmV4cG9ydCBjb25zdCBvbkNyZWF0ZTogQ2RrQ3VzdG9tUmVzb3VyY2VIYW5kbGVyID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gIGNvbnNvbGUubG9nKGV2ZW50KTtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3Qgam9iID0gYXdhaXQgY2xpZW50LnNlbmQoXG4gICAgbmV3IFN1Ym1pdEpvYkNvbW1hbmQoe1xuICAgICAgam9iTmFtZTogYCR7bm93LmdldEZ1bGxZZWFyKCl9LSR7bm93LmdldE1vbnRoKCkgKyAxfS0ke25vdy5nZXREYXRlKCl9LSR7bm93LmdldEhvdXJzKCl9LSR7bm93LmdldE1pbnV0ZXMoKX0tJHtub3cuZ2V0U2Vjb25kcygpfWAsXG4gICAgICBqb2JEZWZpbml0aW9uOiBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuam9iRGVmaW5pdGlvbkFybixcbiAgICAgIGpvYlF1ZXVlOiBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuam9iUXVldWVBcm4sXG4gICAgfSksXG4gICk7XG4gIHJldHVybiB7XG4gICAgam9iSWQ6IGpvYi5qb2JJZCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NvbXBsZXRlOiBDZGtDdXN0b21SZXNvdXJjZUlzQ29tcGxldGVIYW5kbGVyID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gIGlmIChldmVudC5SZXF1ZXN0VHlwZSA9PT0gXCJEZWxldGVcIikge1xuICAgIHJldHVybiB7XG4gICAgICBJc0NvbXBsZXRlOiB0cnVlLFxuICAgIH07XG4gIH1cbiAgY29uc3Qgam9icyA9IGF3YWl0IGNsaWVudC5zZW5kKFxuICAgIG5ldyBEZXNjcmliZUpvYnNDb21tYW5kKHtcbiAgICAgIGpvYnM6IFtldmVudC5qb2JJZF0sXG4gICAgfSksXG4gICk7XG4gIGNvbnN0IGpvYiA9IGpvYnMuam9icz8uWzBdO1xuICBpZiAoIWpvYikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSm9iICgke2V2ZW50LmpvYklkfSkgaXMgbWlzc2luZ2ApO1xuICB9XG4gIHN3aXRjaCAoam9iLnN0YXR1cykge1xuICAgIGNhc2UgXCJTVUNDRUVERURcIjpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIElzQ29tcGxldGU6IHRydWUsXG4gICAgICAgIERhdGE6IHtcbiAgICAgICAgICBBcnRpZmFjdFMzVXJsOiBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuYXJ0aWZhY3RTM1VybCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgY2FzZSBcIkZBSUxFRFwiOlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGpvYi5zdGF0dXNSZWFzb24pO1xuICB9XG4gIHJldHVybiB7XG4gICAgSXNDb21wbGV0ZTogZmFsc2UsXG4gIH07XG59O1xuIl19
@@ -0,0 +1,8 @@
1
+ import { IMachineImage, MachineImageConfig } from "aws-cdk-lib/aws-ec2";
2
+ import { Construct } from "constructs";
3
+ export declare class NeuronOptimizedMachineImage extends Construct implements IMachineImage {
4
+ private readonly resource;
5
+ get imageId(): string;
6
+ constructor(scope: Construct, id: string);
7
+ getImage(_scope: Construct): MachineImageConfig;
8
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NeuronOptimizedMachineImage = void 0;
4
+ const path = require("path");
5
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
+ const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
7
+ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
8
+ const ssm = require("aws-cdk-lib/aws-ssm");
9
+ const custom_resources_1 = require("aws-cdk-lib/custom-resources");
10
+ const constructs_1 = require("constructs");
11
+ class NeuronOptimizedMachineImage extends constructs_1.Construct {
12
+ get imageId() {
13
+ return this.resource.getAttString("image_id");
14
+ }
15
+ constructor(scope, id) {
16
+ super(scope, id);
17
+ const provider = new custom_resources_1.Provider(this, "NeuronxAmiProvider", {
18
+ onEventHandler: new aws_lambda_1.SingletonFunction(this, "NeuronxAmiFunction", {
19
+ code: aws_lambda_1.Code.fromAsset(path.join(__dirname, "neuronx-ami")),
20
+ handler: "index.onEvent",
21
+ runtime: aws_lambda_1.Runtime.NODEJS_20_X,
22
+ uuid: "08c9850a-6f13-4ed4-9e2d-7888d7b5a258",
23
+ }),
24
+ });
25
+ this.resource = new aws_cdk_lib_1.CustomResource(this, "NeuronxAmi", {
26
+ serviceToken: provider.serviceToken,
27
+ resourceType: "Custom::NeuronxAmi",
28
+ properties: {
29
+ image: ssm.StringParameter.fromStringParameterName(this, "Image", "/aws/service/ecs/optimized-ami/amazon-linux-2023/neuron/recommended").stringValue,
30
+ },
31
+ });
32
+ }
33
+ getImage(_scope) {
34
+ return {
35
+ imageId: this.imageId,
36
+ osType: aws_ec2_1.OperatingSystemType.LINUX,
37
+ userData: aws_ec2_1.UserData.forLinux(),
38
+ };
39
+ }
40
+ }
41
+ exports.NeuronOptimizedMachineImage = NeuronOptimizedMachineImage;
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV1cm9uLW9wdGltaXplZC1tYWNoaW5lLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGUvbmV1cm9uLW9wdGltaXplZC1tYWNoaW5lLWltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUM3Qiw2Q0FBNkM7QUFDN0MsaURBSzZCO0FBQzdCLHVEQUEwRTtBQUMxRSwyQ0FBMkM7QUFDM0MsbUVBQXdEO0FBQ3hELDJDQUF1QztBQUV2QyxNQUFhLDJCQUNYLFNBQVEsc0JBQVM7SUFJakIsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxJQUFJLDJCQUFRLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ3hELGNBQWMsRUFBRSxJQUFJLDhCQUFpQixDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRTtnQkFDaEUsSUFBSSxFQUFFLGlCQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUN6RCxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztnQkFDNUIsSUFBSSxFQUFFLHNDQUFzQzthQUM3QyxDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNyRCxZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDbkMsWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQ2hELElBQUksRUFDSixPQUFPLEVBQ1AscUVBQXFFLENBQ3RFLENBQUMsV0FBVzthQUNkO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxNQUFpQjtRQUN4QixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE1BQU0sRUFBRSw2QkFBbUIsQ0FBQyxLQUFLO1lBQ2pDLFFBQVEsRUFBRSxrQkFBUSxDQUFDLFFBQVEsRUFBRTtTQUM5QixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBdkNELGtFQXVDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IEN1c3RvbVJlc291cmNlIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBJTWFjaGluZUltYWdlLFxuICBNYWNoaW5lSW1hZ2VDb25maWcsXG4gIE9wZXJhdGluZ1N5c3RlbVR5cGUsXG4gIFVzZXJEYXRhLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgQ29kZSwgUnVudGltZSwgU2luZ2xldG9uRnVuY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0ICogYXMgc3NtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3NtXCI7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgY2xhc3MgTmV1cm9uT3B0aW1pemVkTWFjaGluZUltYWdlXG4gIGV4dGVuZHMgQ29uc3RydWN0XG4gIGltcGxlbWVudHMgSU1hY2hpbmVJbWFnZVxue1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBDdXN0b21SZXNvdXJjZTtcbiAgZ2V0IGltYWdlSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UuZ2V0QXR0U3RyaW5nKFwiaW1hZ2VfaWRcIik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFByb3ZpZGVyKHRoaXMsIFwiTmV1cm9ueEFtaVByb3ZpZGVyXCIsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBuZXcgU2luZ2xldG9uRnVuY3Rpb24odGhpcywgXCJOZXVyb254QW1pRnVuY3Rpb25cIiwge1xuICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCBcIm5ldXJvbngtYW1pXCIpKSxcbiAgICAgICAgaGFuZGxlcjogXCJpbmRleC5vbkV2ZW50XCIsXG4gICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gICAgICAgIHV1aWQ6IFwiMDhjOTg1MGEtNmYxMy00ZWQ0LTllMmQtNzg4OGQ3YjVhMjU4XCIsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgICB0aGlzLnJlc291cmNlID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIFwiTmV1cm9ueEFtaVwiLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206Ok5ldXJvbnhBbWlcIixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgaW1hZ2U6IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBcIkltYWdlXCIsXG4gICAgICAgICAgXCIvYXdzL3NlcnZpY2UvZWNzL29wdGltaXplZC1hbWkvYW1hem9uLWxpbnV4LTIwMjMvbmV1cm9uL3JlY29tbWVuZGVkXCIsXG4gICAgICAgICkuc3RyaW5nVmFsdWUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldEltYWdlKF9zY29wZTogQ29uc3RydWN0KTogTWFjaGluZUltYWdlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW1hZ2VJZDogdGhpcy5pbWFnZUlkLFxuICAgICAgb3NUeXBlOiBPcGVyYXRpbmdTeXN0ZW1UeXBlLkxJTlVYLFxuICAgICAgdXNlckRhdGE6IFVzZXJEYXRhLmZvckxpbnV4KCksXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ import { type CdkCustomResourceHandler } from "aws-lambda";
2
+ export declare const onEvent: CdkCustomResourceHandler;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.onEvent = void 0;
4
+ const onEvent = async (event) => {
5
+ console.log(event);
6
+ const image = JSON.parse(event.ResourceProperties.image);
7
+ console.log(image);
8
+ return {
9
+ Data: image,
10
+ };
11
+ };
12
+ exports.onEvent = onEvent;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJpdmF0ZS9uZXVyb254LWFtaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFTyxNQUFNLE9BQU8sR0FBNkIsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO0lBQy9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQixPQUFPO1FBQ0wsSUFBSSxFQUFFLEtBQUs7S0FDWixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBUFcsUUFBQSxPQUFPLFdBT2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDZGtDdXN0b21SZXNvdXJjZUhhbmRsZXIgfSBmcm9tIFwiYXdzLWxhbWJkYVwiO1xuXG5leHBvcnQgY29uc3Qgb25FdmVudDogQ2RrQ3VzdG9tUmVzb3VyY2VIYW5kbGVyID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gIGNvbnNvbGUubG9nKGV2ZW50KTtcbiAgY29uc3QgaW1hZ2UgPSBKU09OLnBhcnNlKGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5pbWFnZSk7XG4gIGNvbnNvbGUubG9nKGltYWdlKTtcbiAgcmV0dXJuIHtcbiAgICBEYXRhOiBpbWFnZSxcbiAgfTtcbn07XG4iXX0=
package/package.json ADDED
@@ -0,0 +1,147 @@
1
+ {
2
+ "name": "aws-cdk-neuronx-patterns",
3
+ "repository": {
4
+ "type": "git",
5
+ "url": "https://github.com/WinterYukky/aws-cdk-neuronx-patterns.git"
6
+ },
7
+ "scripts": {
8
+ "build": "npx projen build",
9
+ "bump": "npx projen bump",
10
+ "clobber": "npx projen clobber",
11
+ "compat": "npx projen compat",
12
+ "compile": "npx projen compile",
13
+ "default": "npx projen default",
14
+ "docgen": "npx projen docgen",
15
+ "eject": "npx projen eject",
16
+ "eslint": "npx projen eslint",
17
+ "integ": "npx projen integ",
18
+ "integ:update": "npx projen integ:update",
19
+ "package": "npx projen package",
20
+ "package-all": "npx projen package-all",
21
+ "package:js": "npx projen package:js",
22
+ "post-compile": "npx projen post-compile",
23
+ "post-upgrade": "npx projen post-upgrade",
24
+ "pre-compile": "npx projen pre-compile",
25
+ "release": "npx projen release",
26
+ "test": "npx projen test",
27
+ "test:watch": "npx projen test:watch",
28
+ "unbump": "npx projen unbump",
29
+ "upgrade": "npx projen upgrade",
30
+ "watch": "npx projen watch",
31
+ "projen": "npx projen"
32
+ },
33
+ "author": {
34
+ "name": "WinterYukky",
35
+ "email": "49480575+WinterYukky@users.noreply.github.com",
36
+ "organization": false
37
+ },
38
+ "devDependencies": {
39
+ "@aws-cdk/integ-runner": "2.149.0-alpha.0",
40
+ "@aws-cdk/integ-tests-alpha": "2.149.0-alpha.0",
41
+ "@aws-sdk/client-batch": "^3.616.0",
42
+ "@types/aws-lambda": "^8.10.141",
43
+ "@types/jest": "^29.5.12",
44
+ "@types/node": "^18",
45
+ "@typescript-eslint/eslint-plugin": "^7",
46
+ "@typescript-eslint/parser": "^7",
47
+ "aws-cdk-lib": "2.149.0",
48
+ "constructs": "10.0.5",
49
+ "esbuild": "^0.23.0",
50
+ "eslint": "^8",
51
+ "eslint-config-prettier": "^9.1.0",
52
+ "eslint-import-resolver-typescript": "^3.6.1",
53
+ "eslint-plugin-import": "^2.29.1",
54
+ "eslint-plugin-prettier": "^5.2.1",
55
+ "jest": "^29.7.0",
56
+ "jest-junit": "^15",
57
+ "jsii": "~5.4.0",
58
+ "jsii-diff": "^1.101.0",
59
+ "jsii-docgen": "^10.4.19",
60
+ "jsii-pacmak": "^1.101.0",
61
+ "jsii-rosetta": "~5.4.0",
62
+ "prettier": "^3.3.3",
63
+ "projen": "^0.84.6",
64
+ "standard-version": "^9",
65
+ "ts-jest": "^29.2.3",
66
+ "ts-node": "^10.9.2",
67
+ "typescript": "^5.5.3"
68
+ },
69
+ "peerDependencies": {
70
+ "aws-cdk-lib": "^2.149.0",
71
+ "constructs": "^10.0.5"
72
+ },
73
+ "keywords": [
74
+ "cdk",
75
+ "neuronx"
76
+ ],
77
+ "main": "lib/index.js",
78
+ "license": "Apache-2.0",
79
+ "publishConfig": {
80
+ "access": "public"
81
+ },
82
+ "typesVersions": {
83
+ "<=3.9": {
84
+ "lib/*": [
85
+ "lib/.types-compat/ts3.9/*",
86
+ "lib/.types-compat/ts3.9/*/index.d.ts"
87
+ ]
88
+ }
89
+ },
90
+ "version": "0.0.0",
91
+ "jest": {
92
+ "coverageProvider": "v8",
93
+ "testMatch": [
94
+ "<rootDir>/@(src|test)/**/*(*.)@(spec|test).ts?(x)",
95
+ "<rootDir>/@(src|test)/**/__tests__/**/*.ts?(x)",
96
+ "<rootDir>/@(projenrc)/**/*(*.)@(spec|test).ts?(x)",
97
+ "<rootDir>/@(projenrc)/**/__tests__/**/*.ts?(x)"
98
+ ],
99
+ "clearMocks": true,
100
+ "collectCoverage": true,
101
+ "coverageReporters": [
102
+ "json",
103
+ "lcov",
104
+ "clover",
105
+ "cobertura",
106
+ "text"
107
+ ],
108
+ "coverageDirectory": "coverage",
109
+ "coveragePathIgnorePatterns": [
110
+ "/node_modules/"
111
+ ],
112
+ "testPathIgnorePatterns": [
113
+ "/node_modules/"
114
+ ],
115
+ "watchPathIgnorePatterns": [
116
+ "/node_modules/"
117
+ ],
118
+ "reporters": [
119
+ "default",
120
+ [
121
+ "jest-junit",
122
+ {
123
+ "outputDirectory": "test-reports"
124
+ }
125
+ ]
126
+ ],
127
+ "transform": {
128
+ "^.+\\.[t]sx?$": [
129
+ "ts-jest",
130
+ {
131
+ "tsconfig": "tsconfig.dev.json"
132
+ }
133
+ ]
134
+ }
135
+ },
136
+ "types": "lib/index.d.ts",
137
+ "stability": "stable",
138
+ "jsii": {
139
+ "outdir": "dist",
140
+ "targets": {},
141
+ "tsc": {
142
+ "outDir": "lib",
143
+ "rootDir": "src"
144
+ }
145
+ },
146
+ "//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
147
+ }