@@ -28,10 +28,11 @@ async function run() {
2828 role, codeSigningConfigArn, kmsKeyArn, sourceKmsKeyArn,
2929 vpcConfig, deadLetterConfig, tracingConfig,
3030 layers, fileSystemConfigs, imageConfig, snapStart,
31- loggingConfig, tags,
31+ loggingConfig, tags, durableConfig,
3232 parsedEnvironment, parsedVpcConfig, parsedDeadLetterConfig,
3333 parsedTracingConfig, parsedLayers, parsedFileSystemConfigs,
3434 parsedImageConfig, parsedSnapStart, parsedLoggingConfig, parsedTags,
35+ parsedDurableConfig,
3536 functionDescription, dryRun, publish, revisionId,
3637 runtime, handler, architectures
3738 } = inputs;
@@ -81,9 +82,10 @@ async function run() {
8182 revisionId, vpcConfig, parsedEnvironment, deadLetterConfig,
8283 tracingConfig, layers, fileSystemConfigs, imageConfig,
8384 snapStart, loggingConfig, tags, kmsKeyArn, codeSigningConfigArn,
85+ durableConfig,
8486 parsedVpcConfig, parsedDeadLetterConfig, parsedTracingConfig,
8587 parsedLayers, parsedFileSystemConfigs, parsedImageConfig,
86- parsedSnapStart, parsedLoggingConfig, parsedTags
88+ parsedSnapStart, parsedLoggingConfig, parsedTags, parsedDurableConfig
8789 }, functionExists);
8890
8991 // Update function configuration
@@ -108,7 +110,8 @@ async function run() {
108110 ...(fileSystemConfigs && { FileSystemConfigs: parsedFileSystemConfigs }),
109111 ...(imageConfig && { ImageConfig: parsedImageConfig }),
110112 ...(snapStart && { SnapStart: parsedSnapStart }),
111- ...(loggingConfig && { LoggingConfig: parsedLoggingConfig })
113+ ...(loggingConfig && { LoggingConfig: parsedLoggingConfig }),
114+ ...(durableConfig && { DurableConfig: parsedDurableConfig })
112115 });
113116
114117 if (configChanged) {
@@ -136,14 +139,16 @@ async function run() {
136139 imageConfig,
137140 snapStart,
138141 loggingConfig,
142+ durableConfig,
139143 parsedVpcConfig,
140144 parsedDeadLetterConfig,
141145 parsedTracingConfig,
142146 parsedLayers,
143147 parsedFileSystemConfigs,
144148 parsedImageConfig,
145149 parsedSnapStart,
146- parsedLoggingConfig
150+ parsedLoggingConfig,
151+ parsedDurableConfig
147152 });
148153 } else {
149154 core.info('No configuration changes detected');
@@ -302,9 +307,10 @@ async function createFunction(client, inputs, functionExists) {
302307 timeout, publish, architectures, ephemeralStorage, revisionId,
303308 vpcConfig, parsedEnvironment, deadLetterConfig, tracingConfig,
304309 layers, fileSystemConfigs, imageConfig, snapStart, loggingConfig, tags,
305- kmsKeyArn, codeSigningConfigArn, parsedVpcConfig, parsedDeadLetterConfig,
310+ kmsKeyArn, codeSigningConfigArn, durableConfig,
311+ parsedVpcConfig, parsedDeadLetterConfig,
306312 parsedTracingConfig, parsedLayers, parsedFileSystemConfigs, parsedImageConfig,
307- parsedSnapStart, parsedLoggingConfig, parsedTags
313+ parsedSnapStart, parsedLoggingConfig, parsedTags, parsedDurableConfig
308314 } = inputs;
309315
310316 if (!functionExists) {
@@ -390,6 +396,7 @@ async function createFunction(client, inputs, functionExists) {
390396 ...(tags && { Tags: parsedTags }),
391397 ...(kmsKeyArn && { KMSKeyArn: kmsKeyArn }),
392398 ...(codeSigningConfigArn && { CodeSigningConfigArn: codeSigningConfigArn }),
399+ ...(durableConfig && { DurableConfig: parsedDurableConfig })
393400 };
394401
395402 core.info(`Creating new Lambda function: ${functionName}`);
@@ -480,10 +487,10 @@ async function updateFunctionConfiguration(client, params) {
480487 functionName, role, handler, functionDescription, parsedMemorySize,
481488 timeout, runtime, kmsKeyArn, ephemeralStorage, vpcConfig,
482489 parsedEnvironment, deadLetterConfig, tracingConfig, layers,
483- fileSystemConfigs, imageConfig, snapStart, loggingConfig,
490+ fileSystemConfigs, imageConfig, snapStart, loggingConfig, durableConfig,
484491 parsedVpcConfig, parsedDeadLetterConfig, parsedTracingConfig,
485492 parsedLayers, parsedFileSystemConfigs, parsedImageConfig,
486- parsedSnapStart, parsedLoggingConfig
493+ parsedSnapStart, parsedLoggingConfig, parsedDurableConfig
487494 } = params;
488495
489496 try {
@@ -505,7 +512,8 @@ async function updateFunctionConfiguration(client, params) {
505512 ...(fileSystemConfigs && { FileSystemConfigs: parsedFileSystemConfigs }),
506513 ...(imageConfig && { ImageConfig: parsedImageConfig }),
507514 ...(snapStart && { SnapStart: parsedSnapStart }),
508- ...(loggingConfig && { LoggingConfig: parsedLoggingConfig })
515+ ...(loggingConfig && { LoggingConfig: parsedLoggingConfig }),
516+ ...(durableConfig && { DurableConfig: parsedDurableConfig })
509517 };
510518
511519 core.info(`Updating function configuration for ${functionName}`);
@@ -98020,10 +98028,11 @@ function validateJsonInputs() {
9802098028 const snapStart = core.getInput('snap-start', { required: false });
9802198029 const loggingConfig = core.getInput('logging-config', { required: false });
9802298030 const tags = core.getInput('tags', { required: false });
98031+ const durableConfig = core.getInput('durable-config', { required: false });
9802398032
9802498033 let parsedEnvironment, parsedVpcConfig, parsedDeadLetterConfig, parsedTracingConfig,
9802598034 parsedLayers, parsedFileSystemConfigs, parsedImageConfig, parsedSnapStart,
98026- parsedLoggingConfig, parsedTags;
98035+ parsedLoggingConfig, parsedTags, parsedDurableConfig ;
9802798036
9802898037 try {
9802998038 if (environment) {
@@ -98094,6 +98103,24 @@ function validateJsonInputs() {
9809498103 throw new Error('tags must be an object of key-value pairs');
9809598104 }
9809698105 }
98106+
98107+ if (durableConfig) {
98108+ parsedDurableConfig = parseJsonInput(durableConfig, 'durable-config');
98109+ if (parsedDurableConfig.ExecutionTimeout !== undefined) {
98110+ if (typeof parsedDurableConfig.ExecutionTimeout !== 'number' ||
98111+ parsedDurableConfig.ExecutionTimeout < 1 ||
98112+ parsedDurableConfig.ExecutionTimeout > 31622400) {
98113+ throw new Error('durable-config ExecutionTimeout must be between 1 and 31622400 seconds');
98114+ }
98115+ }
98116+ if (parsedDurableConfig.RetentionPeriodInDays !== undefined) {
98117+ if (typeof parsedDurableConfig.RetentionPeriodInDays !== 'number' ||
98118+ parsedDurableConfig.RetentionPeriodInDays < 1 ||
98119+ parsedDurableConfig.RetentionPeriodInDays > 90) {
98120+ throw new Error('durable-config RetentionPeriodInDays must be between 1 and 90 days');
98121+ }
98122+ }
98123+ }
9809798124 } catch (error) {
9809898125 core.setFailed(`Input validation error: ${error.message}`);
9809998126 return { valid: false };
@@ -98111,6 +98138,7 @@ function validateJsonInputs() {
9811198138 snapStart,
9811298139 loggingConfig,
9811398140 tags,
98141+ durableConfig,
9811498142 parsedEnvironment,
9811598143 parsedVpcConfig,
9811698144 parsedDeadLetterConfig,
@@ -98120,7 +98148,8 @@ function validateJsonInputs() {
9812098148 parsedImageConfig,
9812198149 parsedSnapStart,
9812298150 parsedLoggingConfig,
98123- parsedTags
98151+ parsedTags,
98152+ parsedDurableConfig
9812498153 };
9812598154}
9812698155
0 commit comments