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.
- package/.devcontainer/devcontainer.json +39 -0
- package/.jsii +4755 -0
- package/API.md +824 -0
- package/LICENSE +202 -0
- package/README.md +103 -0
- package/docs/neuronx-compile-architecture.png +0 -0
- package/lib/.types-compat/ts3.9/index.d.ts +2 -0
- package/lib/.types-compat/ts3.9/neuronx-compile.d.ts +166 -0
- package/lib/.types-compat/ts3.9/neuronx-instance-type.d.ts +44 -0
- package/lib/.types-compat/ts3.9/private/await-compile-job/index.d.ts +4 -0
- package/lib/.types-compat/ts3.9/private/neuron-optimized-machine-image.d.ts +8 -0
- package/lib/.types-compat/ts3.9/private/neuronx-ami/index.d.ts +2 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +19 -0
- package/lib/neuronx-compile.d.ts +166 -0
- package/lib/neuronx-compile.js +285 -0
- package/lib/neuronx-instance-type.d.ts +44 -0
- package/lib/neuronx-instance-type.js +52 -0
- package/lib/private/await-compile-job/index.d.ts +4 -0
- package/lib/private/await-compile-job/index.js +62 -0
- package/lib/private/neuron-optimized-machine-image.d.ts +8 -0
- package/lib/private/neuron-optimized-machine-image.js +42 -0
- package/lib/private/neuronx-ami/index.d.ts +2 -0
- package/lib/private/neuronx-ami/index.js +13 -0
- package/package.json +147 -0
|
@@ -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,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
|
+
}
|