@ez4/aws-function 0.42.0 → 0.44.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/dist/function/client.d.ts +6 -4
- package/dist/function/helpers/logging.d.ts +2 -0
- package/dist/function/helpers/zip.d.ts +1 -1
- package/dist/function/types.d.ts +1 -0
- package/dist/main.cjs +181 -173
- package/dist/main.mjs +170 -166
- package/dist/utils/defaults.d.ts +5 -1
- package/package.json +10 -10
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import type { Arn, OperationLogLine, ResourceTags } from '@ez4/aws-common';
|
|
2
|
-
import type { ArchitectureType, RuntimeType } from '@ez4/project';
|
|
2
|
+
import type { ArchitectureType, LogLevel, RuntimeType } from '@ez4/project';
|
|
3
3
|
import type { LinkedVariables } from '@ez4/project/library';
|
|
4
4
|
export type CreateRequest = {
|
|
5
5
|
roleArn: Arn;
|
|
6
|
+
files?: string[];
|
|
6
7
|
sourceFile: string;
|
|
7
8
|
functionName: string;
|
|
8
9
|
handlerName: string;
|
|
9
10
|
description?: string;
|
|
10
11
|
logGroup?: string;
|
|
12
|
+
logLevel?: LogLevel;
|
|
11
13
|
variables?: LinkedVariables;
|
|
12
14
|
architecture: ArchitectureType;
|
|
13
15
|
runtime: RuntimeType;
|
|
14
16
|
timeout?: number;
|
|
15
17
|
memory?: number;
|
|
16
18
|
publish?: boolean;
|
|
17
|
-
debug?: boolean;
|
|
18
19
|
vpc?: boolean;
|
|
19
20
|
tags?: ResourceTags;
|
|
20
21
|
};
|
|
@@ -27,16 +28,17 @@ export type UpdateConfigurationRequest = {
|
|
|
27
28
|
handlerName?: string;
|
|
28
29
|
description?: string;
|
|
29
30
|
logGroup?: string;
|
|
31
|
+
logLevel?: LogLevel;
|
|
30
32
|
variables?: LinkedVariables;
|
|
31
33
|
runtime?: RuntimeType;
|
|
32
34
|
timeout?: number;
|
|
33
35
|
memory?: number;
|
|
34
|
-
debug?: boolean;
|
|
35
36
|
vpc?: boolean;
|
|
36
37
|
};
|
|
37
38
|
export type UpdateSourceCodeRequest = {
|
|
38
|
-
|
|
39
|
+
files?: string[];
|
|
39
40
|
sourceFile: string;
|
|
41
|
+
architecture?: ArchitectureType;
|
|
40
42
|
publish?: boolean;
|
|
41
43
|
};
|
|
42
44
|
export declare const importFunction: (logger: OperationLogLine, functionName: string, version?: string) => Promise<ImportOrCreateResponse | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const getZipBuffer: (filePath: string, entryName: string) => Promise<Buffer<ArrayBufferLike>>;
|
|
1
|
+
export declare const getZipBuffer: (filePath: string, entryName: string, additionalFiles?: string[]) => Promise<Buffer<ArrayBufferLike>>;
|
package/dist/function/types.d.ts
CHANGED
package/dist/main.cjs
CHANGED
|
@@ -1,185 +1,193 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
typeof e=="object"||typeof e=="function")for(let i of
|
|
3
|
-
|
|
4
|
-
enumerable:!0}):n,t)),
|
|
5
|
-
FunctionServiceName:()=>
|
|
6
|
-
MappingServiceType:()=>R,PermissionServiceName:()=>
|
|
7
|
-
buildFunctionArn:()=>
|
|
8
|
-
getDefaultVpcConfig:()=>
|
|
9
|
-
getFunctionRuntime:()=>
|
|
10
|
-
isMappingState:()=>
|
|
11
|
-
module.exports=
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
t=>
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
!
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
"use strict";var gt=Object.create;var V=Object.defineProperty;var dt=Object.getOwnPropertyDescriptor;var ft=Object.getOwnPropertyNames;var yt=Object.getPrototypeOf,St=Object.prototype.hasOwnProperty;var o=(t,e)=>V(t,"name",{value:e,configurable:!0});var wt=(t,e)=>{for(var n in e)V(t,n,{get:e[n],enumerable:!0})},ye=(t,e,n,r)=>{if(e&&
|
|
2
|
+
typeof e=="object"||typeof e=="function")for(let i of ft(e))!St.call(t,i)&&i!==n&&
|
|
3
|
+
V(t,i,{get:()=>e[i],enumerable:!(r=dt(e,i))||r.enumerable});return t};var Ft=(t,e,n)=>(n=t!=null?gt(yt(t)):{},ye(e||!t||!t.__esModule?V(n,"default",{value:t,
|
|
4
|
+
enumerable:!0}):n,t)),xt=t=>ye(V({},"__esModule",{value:!0}),t);var tn={};wt(tn,{FunctionArchitecture:()=>we,FunctionDefaults:()=>O,FunctionRuntime:()=>Fe,
|
|
5
|
+
FunctionServiceName:()=>F,FunctionServiceType:()=>x,MappingService:()=>qe,MappingServiceName:()=>b,
|
|
6
|
+
MappingServiceType:()=>R,PermissionServiceName:()=>T,PermissionServiceType:()=>h,
|
|
7
|
+
buildFunctionArn:()=>en,createFunction:()=>_t,createMapping:()=>Xt,createPermission:()=>Jt,
|
|
8
|
+
getDefaultVpcConfig:()=>Q,getFunctionArchitecture:()=>W,getFunctionArn:()=>Pt,getFunctionName:()=>E,
|
|
9
|
+
getFunctionRuntime:()=>j,getFunctionState:()=>Ct,getPermission:()=>Kt,isFunctionState:()=>oe,
|
|
10
|
+
isMappingState:()=>Yt,registerTriggers:()=>Qt,tryGetFunctionArn:()=>Re,tryGetFunctionState:()=>Lt});
|
|
11
|
+
module.exports=xt(tn);var rt=require("@ez4/aws-common"),ot=require("@ez4/aws-identity"),it=require("@ez4/aws-logs"),
|
|
12
|
+
at=require("@ez4/project/library");var Te=require("@ez4/aws-common");var d=require("@ez4/aws-common"),C=require("@ez4/utils"),pe=require("@ez4/aws-logs"),
|
|
13
|
+
ce=require("@ez4/aws-identity");var p=require("@aws-sdk/client-lambda"),_=require("@ez4/aws-common");var q=require("@ez4/aws-common"),Se=require("@aws-sdk/client-lambda");var f=o(()=>new Se.LambdaClient((0,q.getAwsClientOptions)()),"getLambdaClient"),
|
|
14
|
+
B=o(t=>({...(0,q.getAwsClientWaiter)(),client:t}),"getLambdaWaiter");var Y=require("@ez4/project");var we=(n=>(n.Arm="arm64",n.x86="x86_64",n))(we||{});var vt={[Y.ArchitectureType.Arm]:"arm64",[Y.ArchitectureType.x86]:"x86_64"},W=o(
|
|
15
|
+
t=>vt[t],"getFunctionArchitecture");var ee=require("@ez4/project");var Fe=(n=>(n.Node22="nodejs22.x",n.Node24="nodejs24.x",n))(Fe||{});var ht={[ee.RuntimeType.Node22]:"nodejs22.x",[ee.RuntimeType.Node24]:"nodejs24.x"},
|
|
16
|
+
j=o(t=>ht[t],"getFunctionRuntime");var A=require("@ez4/project"),O;(s=>(s.LogRetention=90,s.LogLevel=A.LogLevel.Warning,
|
|
17
|
+
s.Architecture=A.ArchitectureType.x86,s.Runtime=A.RuntimeType.Node24,s.Timeout=90,
|
|
18
|
+
s.Memory=192))(O||={});var xe=require("@ez4/aws-common"),ve=require("@ez4/utils");var F="AWS:Lambda/Function",x="aws:lambda.function";var bt=/[a-z][\w]+/i,Rt=o(t=>bt.test(t),"isValidName"),te=o(t=>{for(let e in t)if(!Rt(
|
|
19
|
+
e))throw new xe.InvalidParameterError(F,`${e} is an invalid variable name .`)},"\
|
|
20
|
+
assertVariables"),N=o(t=>{let e={};for(let n in t)e[n]=(0,ve.hashData)(t[n]);return e},
|
|
21
|
+
"protectVariables");var U=require("@aws-sdk/client-lambda"),z=require("@ez4/project");var ne=o(t=>{switch(t){case z.LogLevel.Information:return U.ApplicationLogLevel.
|
|
22
|
+
Info;case z.LogLevel.Debug:return U.ApplicationLogLevel.Debug;case z.LogLevel.Error:
|
|
23
|
+
return U.ApplicationLogLevel.Error;default:case z.LogLevel.Warning:return U.ApplicationLogLevel.
|
|
24
|
+
Warn}},"getLogLevel");var $=require("node:path"),he=Ft(require("adm-zip"),1);var be=o(async(t,e,n)=>{let r=new he.default;return n?.forEach(i=>{r.addLocalFile(
|
|
25
|
+
i,(0,$.dirname)((0,$.normalize)(i)))}),r.addLocalFile(t,void 0,e),r.toBufferPromise()},
|
|
26
|
+
"getZipBuffer");var I=require("@ez4/aws-vpc"),re=require("@ez4/aws-common");var Z=class extends Error{static{o(this,"FunctionNotFoundError")}constructor(e){
|
|
27
|
+
super(`Function ${e} wasn't found.`)}},G=class extends Error{static{o(this,"Defa\
|
|
28
|
+
ultVpcDetailsError")}constructor(){super("Unable to get the default VPC details.")}};var oe=o(t=>t.type===x,"isFunctionState"),Lt=o((t,e,n)=>{try{let r=t.getServiceState(
|
|
29
|
+
e,n);if(oe(r))return r}catch{}},"tryGetFunctionState"),Ct=o((t,e,n)=>{let r=t.getServiceState(
|
|
30
|
+
e,n);if(!oe(r))throw new Z(e);return r},"getFunctionState"),E=o((t,e,n)=>{let r=n.
|
|
31
|
+
getDependencies(x).at(0)?.parameters;if(!r?.functionName)throw new re.IncompleteResourceError(
|
|
32
|
+
t,e,"functionName");return r.functionName},"getFunctionName"),Re=o(t=>t.getDependencies(
|
|
33
|
+
x)[0]?.result?.functionArn,"tryGetFunctionArn"),Pt=o((t,e,n)=>{let r=Re(n);if(!r)
|
|
34
|
+
throw new re.IncompleteResourceError(t,e,"functionArn");return r},"getFunctionAr\
|
|
35
|
+
n"),Q=o(async()=>{let t=await(0,I.getDefaultVpcId)();if(!t)throw new G;let[e,n]=await Promise.
|
|
36
|
+
all([(0,I.getDefaultSubnetIds)(t),(0,I.getDefaultSecurityGroupId)(t)]);if(!e?.length||
|
|
37
|
+
!n)throw new G;return{subnetIds:e.slice(0,2),securityGroupId:n}},"getDefaultVpcC\
|
|
38
|
+
onfig");var Le=o(async(t,e,n)=>{t.update("Importing function");try{let r=await f().send(
|
|
39
|
+
new p.GetFunctionCommand({FunctionName:e,Qualifier:n})),i=r.Configuration.Version,
|
|
34
40
|
a=r.Configuration.FunctionArn;return{functionVersion:i,functionArn:a}}catch(r){if(!(r instanceof
|
|
35
|
-
|
|
36
|
-
t.update("Creating function");let{functionName:n,variables:r}=e;r&&
|
|
37
|
-
vpc?await
|
|
38
|
-
memory:l,timeout:
|
|
39
|
-
|
|
40
|
-
Description:c,MemorySize:l,Timeout:
|
|
41
|
-
g)],Runtime:
|
|
42
|
-
[],SubnetIds:i?i.subnetIds:[]},LoggingConfig:{LogGroup:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
Qualifier:
|
|
48
|
-
async(t,e,n)=>{t.update("Updating source code");let r=await
|
|
49
|
-
architecture:a}=n,
|
|
50
|
-
[
|
|
51
|
-
return await(0,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
variables:i}=n;i&&
|
|
55
|
-
|
|
56
|
-
{Runtime:
|
|
57
|
-
{Handler:
|
|
58
|
-
a.subnetIds:[]},LoggingConfig:{LogGroup:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"updateConfiguration"),
|
|
62
|
-
await(0,
|
|
63
|
-
FunctionName:t}))}catch(r){if(!(r instanceof
|
|
64
|
-
"deleteFunction");var
|
|
65
|
-
{Resource:e,Tags:{...n,ManagedBy:"EZ4"}}))},"tagFunction"),
|
|
66
|
-
update("Untag function"),await
|
|
67
|
-
"untagFunction"),
|
|
68
|
-
"getSourceHandlerName");var
|
|
69
|
-
getFunctionHandler"),
|
|
70
|
-
"equalsResource"),
|
|
71
|
-
{...n,connections:t.connections,dependencies:t.dependencies,variables:
|
|
72
|
-
getFunctionVariables()),
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
await
|
|
84
|
-
|
|
85
|
-
[r.
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
variables:
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
let{
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
c
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
41
|
+
p.ResourceNotFoundException))throw r;return}},"importFunction"),Ce=o(async(t,e)=>{
|
|
42
|
+
t.update("Creating function");let{functionName:n,variables:r}=e;r&&te(r);let i=e.
|
|
43
|
+
vpc?await Q():void 0,a=await Ne(e.sourceFile,e.files),s=Ie(e.handlerName),{description:c,
|
|
44
|
+
memory:l,timeout:m,publish:u,architecture:g,runtime:w,roleArn:y,logGroup:v,logLevel:P}=e,
|
|
45
|
+
k=f(),ge=await(0,_.waitCreation)(()=>k.send(new p.CreateFunctionCommand({FunctionName:n,
|
|
46
|
+
Description:c,MemorySize:l,Timeout:m,Role:y,Publish:u,Handler:s,Architectures:[W(
|
|
47
|
+
g)],Runtime:j(w),PackageType:"Zip",VpcConfig:{SecurityGroupIds:i?[i.securityGroupId]:
|
|
48
|
+
[],SubnetIds:i?i.subnetIds:[]},LoggingConfig:{LogGroup:v,ApplicationLogLevel:ne(
|
|
49
|
+
P??O.LogLevel),SystemLogLevel:p.SystemLogLevel.Warn,LogFormat:p.LogFormat.Json},
|
|
50
|
+
Code:{ZipFile:a},Environment:{Variables:r},Tags:{...e.tags,ManagedBy:"EZ4"}}))),
|
|
51
|
+
lt=ge.FunctionArn,de=ge.Version,fe=B(k);return await(0,p.waitUntilFunctionActive)(
|
|
52
|
+
fe,{FunctionName:n}),u&&await(0,p.waitUntilPublishedVersionActive)(fe,{FunctionName:n,
|
|
53
|
+
Qualifier:de}),{functionArn:lt,...u&&{functionVersion:de}}},"createFunction"),ie=o(
|
|
54
|
+
async(t,e,n)=>{t.update("Updating source code");let r=await Ne(n.sourceFile,n.files),
|
|
55
|
+
{publish:i,architecture:a}=n,s=f(),c=await s.send(new p.UpdateFunctionCodeCommand(
|
|
56
|
+
{Architectures:a&&[W(a)],FunctionName:e,ZipFile:r,Publish:i})),l=c.FunctionArn,m=c.
|
|
57
|
+
Version,u=B(s);return await(0,p.waitUntilFunctionUpdated)(u,{FunctionName:e}),i&&
|
|
58
|
+
await(0,p.waitUntilPublishedVersionActive)(u,{FunctionName:e,Qualifier:m}),{functionArn:l,
|
|
59
|
+
...i&&{functionVersion:m}}},"updateSourceCode"),ae=o(async(t,e,n)=>{t.update("Up\
|
|
60
|
+
dating configuration");let{handlerName:r,variables:i}=n;i&&te(i);let a=n.vpc?await Q():
|
|
61
|
+
void 0,{description:s,memory:c,timeout:l,runtime:m,roleArn:u,logGroup:g,logLevel:w}=n,
|
|
62
|
+
y=f();await y.send(new p.UpdateFunctionConfigurationCommand({Runtime:m&&j(m),FunctionName:e,
|
|
63
|
+
Description:s,MemorySize:c,Timeout:l,Role:u,...r&&{Handler:Ie(r)},VpcConfig:{SecurityGroupIds:a?
|
|
64
|
+
[a.securityGroupId]:[],SubnetIds:a?a.subnetIds:[]},LoggingConfig:{LogGroup:g,ApplicationLogLevel:ne(
|
|
65
|
+
w??O.LogLevel),SystemLogLevel:p.SystemLogLevel.Warn,LogFormat:p.LogFormat.Json},
|
|
66
|
+
Environment:{Variables:i}})),await(0,p.waitUntilFunctionUpdated)(B(y),{FunctionName:e})},
|
|
67
|
+
"updateConfiguration"),Pe=o(async(t,e)=>{e.update("Deleting function");let n=f();
|
|
68
|
+
await(0,_.waitDeletion)(async()=>{try{await n.send(new p.DeleteFunctionCommand({
|
|
69
|
+
FunctionName:t}))}catch(r){if(!(r instanceof p.ResourceNotFoundException))throw r}})},
|
|
70
|
+
"deleteFunction");var se=o(async(t,e,n)=>{t.update("Tag function"),await f().send(new p.TagResourceCommand(
|
|
71
|
+
{Resource:e,Tags:{...n,ManagedBy:"EZ4"}}))},"tagFunction"),Ae=o(async(t,e,n)=>{t.
|
|
72
|
+
update("Untag function"),await f().send(new p.UntagResourceCommand({Resource:e,TagKeys:n}))},
|
|
73
|
+
"untagFunction"),Ne=o((t,e)=>be(t,"main.mjs",e),"getSourceZipFile"),Ie=o(t=>`mai\
|
|
74
|
+
n.${t}`,"getSourceHandlerName");var Ee=o(()=>({equals:At,create:Me,replace:It,preview:Nt,update:Et,delete:Mt}),"\
|
|
75
|
+
getFunctionHandler"),At=o((t,e)=>!!t.result&&t.result.functionArn===e.result?.functionArn,
|
|
76
|
+
"equalsResource"),Nt=o(async(t,e)=>{let n=t.parameters,r=e.parameters,i=(0,C.deepCompare)(
|
|
77
|
+
{...n,connections:t.connections,dependencies:t.dependencies,variables:N(await n.
|
|
78
|
+
getFunctionVariables()),filesHash:n.files&&await(0,d.getBundleHash)(n.functionName,
|
|
79
|
+
n.files),sourceHash:await(0,d.getBundleHash)(...n.getFunctionFiles()),valuesHash:n.
|
|
80
|
+
getFunctionHash()},{...r,connections:e.connections,dependencies:e.dependencies,variables:e.
|
|
81
|
+
result?.variables,sourceHash:e.result?.sourceHash,valuesHash:e.result?.valuesHash,
|
|
82
|
+
filesHash:e.result?.filesHash},{exclude:{release:!0}});if(i.counts)return{...i,name:n.
|
|
83
|
+
functionName}},"previewResource"),It=o(async(t,e,n)=>{if(e.result)throw new d.ReplaceResourceError(
|
|
84
|
+
F,t.entryId,e.entryId);return Me(t,n)},"replaceResource"),Me=o((t,e)=>{let{functionName:n,
|
|
85
|
+
release:r,...i}=t.parameters;return d.OperationLogger.logExecution(F,n,"creation",
|
|
86
|
+
async a=>{let s=(0,pe.getLogGroupName)(F,n,e),c=(0,ce.getRoleArn)(F,n,e),[l,m,u,
|
|
87
|
+
g,w]=await Promise.all([(0,d.getBundleHash)(...i.getFunctionFiles()),i.files&&(0,d.getBundleHash)(
|
|
88
|
+
n,i.files),i.getFunctionBundle(e),i.getFunctionHash(),i.getFunctionVariables()]),
|
|
89
|
+
y=await Le(a,n),v=await(0,C.hashFile)(u);if(y)return await ie(a,n,{architecture:i.
|
|
90
|
+
architecture,files:i.files,publish:!1,sourceFile:u}),await ae(a,n,{...i,logGroup:s,
|
|
91
|
+
roleArn:c,variables:{...w,...r?.variableName&&{[r.variableName]:r.version}}}),await se(
|
|
92
|
+
a,y.functionArn,{...i.tags,...r?.tagName&&{[r.tagName]:r.version}}),{functionArn:y.
|
|
93
|
+
functionArn,functionVersion:y.functionVersion,variables:N(w),sourceHash:l,valuesHash:g,
|
|
94
|
+
bundleHash:v,filesHash:m,logGroup:s,roleArn:c};let P=await Ce(a,{...i,publish:!0,
|
|
95
|
+
functionName:n,sourceFile:u,logGroup:s,roleArn:c,variables:{...w,...r?.variableName&&
|
|
96
|
+
{[r.variableName]:r.version}},tags:{...i.tags,...r?.tagName&&{[r.tagName]:r.version}}});
|
|
97
|
+
return{functionArn:P.functionArn,functionVersion:P.functionVersion,variables:N(w),
|
|
98
|
+
sourceHash:l,valuesHash:g,bundleHash:v,filesHash:m,logGroup:s,roleArn:c}})},"cre\
|
|
99
|
+
ateResource"),Et=o((t,e,n)=>{let{parameters:r,result:i}=t,{functionName:a}=r;if(!i)
|
|
100
|
+
throw new d.CorruptedResourceError(F,a);return d.OperationLogger.logExecution(F,
|
|
101
|
+
a,"updates",async s=>{let c=await r.getFunctionVariables(),l=e.result?.variables??
|
|
102
|
+
c,m=(0,ce.getRoleArn)(F,a,n),u=e.result?.roleArn??m,g=(0,pe.getLogGroupName)(F,a,
|
|
103
|
+
n),w=e.result?.logGroup??g,{isUpdated:y,...v}=await Vt(s,a,r,e.result,n),P={...r,
|
|
104
|
+
variables:c,roleArn:m,logGroup:g},k={...e.parameters,variables:l,roleArn:u,logGroup:w};
|
|
105
|
+
return await Tt(s,a,P,k,y,n),await Ht(s,i.functionArn,r,e.parameters,y),{...i,...v,
|
|
106
|
+
variables:N(c),logGroup:g,roleArn:m}})},"updateResource"),Mt=o(async t=>{let{result:e,
|
|
107
|
+
parameters:n}=t;if(!e)return;let{functionName:r}=n;await d.OperationLogger.logExecution(
|
|
108
|
+
F,r,"deletion",async i=>{await Pe(r,i)})},"deleteResource"),Tt=o(async(t,e,n,r,i,a)=>{
|
|
109
|
+
let{variables:s,...c}=n,l={variables:N(s),...c},m=!(0,C.deepEqual)(l,r,{exclude:{
|
|
110
|
+
sourceFile:!0,functionName:!0,architecture:!0,release:!0,tags:!0}}),u=i?n.release:
|
|
111
|
+
r.release,g=i&&u?.variableName;(m||g||a.force)&&await ae(t,e,{...n,variables:{...n.
|
|
112
|
+
variables,...u?.variableName&&{[u.variableName]:u.version}}})},"checkConfigurati\
|
|
113
|
+
onUpdates"),Ht=o(async(t,e,n,r,i)=>{let s=i&&n.release?.version!==r.release?.version?
|
|
114
|
+
n.release:void 0,c={...n.tags,...s?.tagName&&{[s.tagName]:s.version}};await(0,d.applyTagUpdates)(
|
|
115
|
+
c,r.tags,l=>se(t,e,l),l=>Ae(t,e,l))},"checkTagUpdates"),Vt=o(async(t,e,n,r,i)=>{
|
|
116
|
+
let[a,s,c]=await Promise.all([(0,d.getBundleHash)(...n.getFunctionFiles()),n.files&&
|
|
117
|
+
(0,d.getBundleHash)(e,n.files),n.getFunctionHash()]),l=r?.sourceHash,m=r?.valuesHash,
|
|
118
|
+
u=r?.filesHash;if(a!==l||c!==m||s!==u||i.force){let g=await n.getFunctionBundle(
|
|
119
|
+
i),w=await(0,C.hashFile)(g),y=r?.bundleHash;if(w===y&&s===u&&c===m)return t.update(
|
|
120
|
+
"Skipping source code update"),{isUpdated:!1,sourceHash:a};let{functionVersion:v}=await ie(
|
|
121
|
+
t,e,{architecture:n.architecture,publish:!r?.functionVersion,sourceFile:g,files:n.
|
|
122
|
+
files});return{isUpdated:!0,valuesHash:c,sourceHash:a,bundleHash:w,filesHash:s,...v&&
|
|
123
|
+
{functionVersion:v}}}return{isUpdated:!1}},"checkSourceCodeUpdates");var He=o(()=>{(0,Te.tryRegisterProvider)(x,Ee())},"registerFunctionProvider");var Ge=require("@ez4/aws-common");var D=require("@ez4/aws-common");var M=require("@aws-sdk/client-lambda");var Ve=o(async(t,e)=>{t.update("Creating permission");let n=e.statementId??`ID${Date.
|
|
124
|
+
now()}`;return await f().send(new M.AddPermissionCommand({StatementId:n,FunctionName:e.
|
|
116
125
|
functionName,SourceArn:e.sourceArn,Principal:e.principal,Action:e.action})),{statementId:n}},
|
|
117
|
-
"createPermission"),
|
|
118
|
-
send(new
|
|
119
|
-
if(!(r instanceof
|
|
120
|
-
ion");var
|
|
121
|
-
getPermissionHandler"),
|
|
122
|
-
functionName,"equalsResource"),
|
|
123
|
-
if(e.result)throw new
|
|
124
|
-
n)},"replaceResource"),
|
|
125
|
-
logExecution(
|
|
126
|
+
"createPermission"),Oe=o(async(t,e,n)=>{t.update("Deleting permission");try{return await f().
|
|
127
|
+
send(new M.RemovePermissionCommand({FunctionName:e,StatementId:n})),!0}catch(r){
|
|
128
|
+
if(!(r instanceof M.ResourceNotFoundException))throw r;return!1}},"deletePermiss\
|
|
129
|
+
ion");var T="AWS:Lambda/Permission",h="aws:lambda.permission";var Ue=o(()=>({equals:Ot,create:ze,replace:zt,preview:Ut,update:Gt,delete:Dt}),"\
|
|
130
|
+
getPermissionHandler"),Ot=o((t,e)=>!!t.result&&t.result.functionName===e.result?.
|
|
131
|
+
functionName,"equalsResource"),Ut=o((t,e)=>{},"previewResource"),zt=o(async(t,e,n)=>{
|
|
132
|
+
if(e.result)throw new D.ReplaceResourceError(T,t.entryId,e.entryId);return ze(t,
|
|
133
|
+
n)},"replaceResource"),ze=o((t,e)=>{let n=t.parameters,r=E(T,"permission",e);return D.OperationLogger.
|
|
134
|
+
logExecution(T,r,"creation",async i=>{let a=await n.getPermission(e);return{statementId:(await Ve(
|
|
126
135
|
i,{action:"lambda:InvokeFunction",sourceArn:a.sourceArn,principal:a.principal,functionName:r})).
|
|
127
|
-
statementId,functionName:r}})},"createResource"),
|
|
128
|
-
e"),
|
|
129
|
-
await
|
|
130
|
-
"deleteResource");var
|
|
131
|
-
async()=>{let r=await
|
|
132
|
-
rReadyState"),
|
|
133
|
-
{UUID:e}))).State,"getMappingState");var
|
|
134
|
-
n.Queue="sqs",n))(
|
|
136
|
+
statementId,functionName:r}})},"createResource"),Gt=o(async()=>{},"updateResourc\
|
|
137
|
+
e"),Dt=o(async t=>{let e=t.result;if(!e)return;let{functionName:n,statementId:r}=e;
|
|
138
|
+
await D.OperationLogger.logExecution(T,n,"deletion",async i=>{await Oe(i,n,r)})},
|
|
139
|
+
"deleteResource");var De=o(()=>{(0,Ge.tryRegisterProvider)(h,Ue())},"registerPermissionProvider");var Ke=require("@ez4/aws-common");var L=require("@ez4/aws-common"),J=require("@ez4/utils");var S=require("@aws-sdk/client-lambda"),Be=require("@ez4/aws-common");var ke=require("@aws-sdk/client-lambda"),ue=require("@ez4/utils");var me=o(async(t,e)=>{let n=new Set(["Enabled","Disabled"]);await ue.Wait.until(
|
|
140
|
+
async()=>{let r=await kt(t,e);return n.has(r)?!0:ue.Wait.RetryAttempt})},"waitFo\
|
|
141
|
+
rReadyState"),kt=o(async(t,e)=>(await t.send(new ke.GetEventSourceMappingCommand(
|
|
142
|
+
{UUID:e}))).State,"getMappingState");var b="AWS:Lambda/Mapping",R="aws:lambda.mapping",qe=(n=>(n.DynamoDB="dynamodb",
|
|
143
|
+
n.Queue="sqs",n))(qe||{});var We=o(async(t,e,n)=>{t.update("Importing mapping");let r=await f().send(new S.ListEventSourceMappingsCommand(
|
|
135
144
|
{FunctionName:e,EventSourceArn:n})),[i]=r.EventSourceMappings;return i?{eventId:i.
|
|
136
|
-
UUID}:void 0},"importMapping"),
|
|
137
|
-
sourceArn:n,functionName:r}=e,i=
|
|
138
|
-
{FunctionName:r,EventSourceArn:n,...
|
|
139
|
-
"createMapping")
|
|
140
|
-
i=
|
|
141
|
-
...
|
|
142
|
-
mapping");try{return await
|
|
143
|
-
!0}catch(n){if(!(n instanceof
|
|
144
|
-
eleteMapping"),
|
|
145
|
-
e);return{Enabled:n,FunctionResponseTypes:[
|
|
145
|
+
UUID}:void 0},"importMapping"),je=o(async(t,e)=>{t.update("Creating mapping");let{
|
|
146
|
+
sourceArn:n,functionName:r}=e,i=f(),s=(await i.send(new S.CreateEventSourceMappingCommand(
|
|
147
|
+
{FunctionName:r,EventSourceArn:n,...Qe(e)}))).UUID;return await me(i,s),{eventId:s}},
|
|
148
|
+
"createMapping"),$e=o(async(t,e,n)=>{t.update("Updating mapping");let{functionName:r}=n,
|
|
149
|
+
i=f();await i.send(new S.UpdateEventSourceMappingCommand({UUID:e,FunctionName:r,
|
|
150
|
+
...Qe(n)})),await me(i,e)},"updateMapping"),Ze=o(async(t,e)=>{t.update("Deleting\
|
|
151
|
+
mapping");try{return await f().send(new S.DeleteEventSourceMappingCommand({UUID:e})),
|
|
152
|
+
!0}catch(n){if(!(n instanceof S.ResourceNotFoundException))throw n;return!1}},"d\
|
|
153
|
+
eleteMapping"),Qe=o(t=>{let{sourceArn:e,enabled:n,concurrency:r,batch:i}=t,{service:a}=(0,Be.parseArn)(
|
|
154
|
+
e);return{Enabled:n,FunctionResponseTypes:[S.FunctionResponseType.ReportBatchItemFailures],
|
|
146
155
|
MaximumBatchingWindowInSeconds:i?.maxWait,BatchSize:i?.size,...a==="dynamodb"&&{
|
|
147
|
-
StartingPosition:
|
|
148
|
-
"upsertMappingRequest");var
|
|
149
|
-
getMappingHandler"),
|
|
150
|
-
"equalsResource"),
|
|
151
|
-
r={...e.parameters,dependencies:e.dependencies},i=(0,
|
|
156
|
+
StartingPosition:S.EventSourcePosition.LATEST},...a==="sqs"&&{ScalingConfig:{MaximumConcurrency:r}}}},
|
|
157
|
+
"upsertMappingRequest");var _e=o(()=>({equals:qt,create:Je,replace:Wt,preview:Bt,update:jt,delete:$t}),"\
|
|
158
|
+
getMappingHandler"),qt=o((t,e)=>!!t.result&&t.result.eventId===e.result?.eventId,
|
|
159
|
+
"equalsResource"),Bt=o((t,e)=>{let n={...t.parameters,dependencies:t.dependencies},
|
|
160
|
+
r={...e.parameters,dependencies:e.dependencies},i=(0,J.deepCompare)(n,r,{exclude:{
|
|
152
161
|
getSourceArn:!0}});if(i.counts)return{...i,name:n.fromService}},"previewResource"),
|
|
153
|
-
|
|
154
|
-
return
|
|
155
|
-
g",e);return
|
|
156
|
-
getSourceArn(e);return{eventId:(await
|
|
157
|
-
sourceArn:a})).eventId,functionName:r,sourceArn:a}})},"createResource"),
|
|
158
|
-
let{result:r,parameters:i}=t,{fromService:a}=i;if(!r)throw new
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
functionName:c,sourceArn:
|
|
162
|
-
|
|
163
|
-
result;if(!e)return;let{functionName:n}=e;await
|
|
164
|
-
n,"deletion",async r=>{await
|
|
165
|
-
!(0,
|
|
166
|
-
"checkGeneralUpdates");var
|
|
167
|
-
return(0,
|
|
162
|
+
Wt=o(async(t,e,n)=>{if(e.result)throw new L.ReplaceResourceError(b,t.entryId,e.entryId);
|
|
163
|
+
return Je(t,n)},"replaceResource"),Je=o((t,e)=>{let n=t.parameters,r=E(b,"mappin\
|
|
164
|
+
g",e);return L.OperationLogger.logExecution(b,r,"creation",async i=>{let a=await n.
|
|
165
|
+
getSourceArn(e);return{eventId:(await We(i,r,a)??await je(i,{...t.parameters,functionName:r,
|
|
166
|
+
sourceArn:a})).eventId,functionName:r,sourceArn:a}})},"createResource"),jt=o((t,e,n)=>{
|
|
167
|
+
let{result:r,parameters:i}=t,{fromService:a}=i;if(!r)throw new L.CorruptedResourceError(
|
|
168
|
+
b,"mapping");return L.OperationLogger.logExecution(b,a,"updates",async s=>{let c=E(
|
|
169
|
+
b,"mapping",n),l=e.result?.functionName??r.functionName,m=r.sourceArn,u={...t.parameters,
|
|
170
|
+
functionName:c,sourceArn:m},g={...e.parameters,functionName:l,sourceArn:m};return await Zt(
|
|
171
|
+
s,r.eventId,u,g),{...r,functionName:c}})},"updateResource"),$t=o(async t=>{let e=t.
|
|
172
|
+
result;if(!e)return;let{functionName:n}=e;await L.OperationLogger.logExecution(b,
|
|
173
|
+
n,"deletion",async r=>{await Ze(r,e.eventId)})},"deleteResource"),Zt=o(async(t,e,n,r)=>{
|
|
174
|
+
!(0,J.deepEqual)(n,r,{exclude:{getSourceArn:!0,fromService:!0}})&&await $e(t,e,n)},
|
|
175
|
+
"checkGeneralUpdates");var Xe=o(()=>{(0,Ke.tryRegisterProvider)(R,_e())},"registerMappingProvider");var Ye=o(()=>[{account:"lambda.amazonaws.com"}],"prepareIdentityAccount");var K=require("@ez4/aws-identity"),tt=require("@ez4/project/library");var H=require("@ez4/aws-identity");var et=o(async t=>{let[e,n]=await Promise.all([(0,H.getRegion)(),(0,H.getAccountId)()]);
|
|
176
|
+
return(0,H.createPolicyDocument)([{permissions:["logs:CreateLogStream","logs:Put\
|
|
168
177
|
LogEvents"],resourceIds:[`arn:aws:logs:${e}:${n}:log-group:${t}-*:*`]},{permissions:[
|
|
169
178
|
"ec2:CreateNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:DeleteNetworkI\
|
|
170
|
-
nterface"],resourceIds:["*"]}])},"getPolicyDocument");var
|
|
171
|
-
-lambda-policy`;return(0
|
|
172
|
-
policyDocument:await
|
|
173
|
-
(0,
|
|
174
|
-
"deploy:prepareExecutionPolicy":
|
|
175
|
-
e.entryId,i),
|
|
176
|
-
entryId:a,dependencies:
|
|
177
|
-
t,{type:
|
|
178
|
-
rmission"),
|
|
179
|
-
|
|
179
|
+
nterface"],resourceIds:["*"]}])},"getPolicyDocument");var nt=o(async t=>{let{state:e,options:n}=t,r=(0,tt.getServiceName)("",n),i=`${r}\
|
|
180
|
+
-lambda-policy`;return(0,K.tryGetPolicy)(e,i)??(0,K.createPolicy)(e,{tags:n.tags,
|
|
181
|
+
policyDocument:await et(r),policyName:i})},"prepareExecutionPolicy");var Qt=o(()=>{(0,rt.registerTriggers)(),(0,ot.registerTriggers)(),(0,it.registerTriggers)(),
|
|
182
|
+
(0,at.tryCreateTrigger)("@ez4/aws-function",{"deploy:prepareIdentityAccount":Ye,
|
|
183
|
+
"deploy:prepareExecutionPolicy":nt}),He(),De(),Xe()},"registerTriggers");var X=require("@ez4/utils"),st=require("@ez4/stateful");var _t=o((t,e,n,r)=>{let i=(0,X.toKebabCase)(r.functionName),a=(0,X.hashData)(x,
|
|
184
|
+
e.entryId,i),s=[e.entryId];return n&&s.push(n.entryId),(0,st.attachEntry)(t,{type:x,
|
|
185
|
+
entryId:a,dependencies:s,parameters:{...r,functionName:i}})},"createFunction");var ct=require("@ez4/stateful"),le=require("@ez4/utils");var pt=o(t=>t.type===h,"isPermissionState");var Jt=o((t,e,n,r)=>{let i=(0,le.hashData)(h,e.entryId,n.entryId);return(0,ct.attachEntry)(
|
|
186
|
+
t,{type:h,entryId:i,dependencies:[e.entryId,n.entryId],parameters:r})},"createPe\
|
|
187
|
+
rmission"),Kt=o((t,e,n)=>{let r=(0,le.hashData)(h,e.entryId,n.entryId),i=t[r];return i&&
|
|
188
|
+
pt(i)?i:null},"getPermission");var ut=require("@ez4/utils"),mt=require("@ez4/stateful");var Xt=o((t,e,n,r)=>{let i=(0,ut.hashData)(R,e.entryId,n.entryId);return(0,mt.attachEntry)(
|
|
180
189
|
t,{type:R,entryId:i,dependencies:[e.entryId,n.entryId],parameters:r})},"createMa\
|
|
181
|
-
pping");var
|
|
182
|
-
x86,a.Runtime=Z.RuntimeType.Node24,a.Timeout=90,a.Memory=192))(pt||={});0&&(module.exports={FunctionArchitecture,FunctionDefaults,FunctionRuntime,FunctionServiceName,
|
|
190
|
+
pping");var Yt=o(t=>t.type===R,"isMappingState");var en=o((t,e,n)=>`arn:aws:lambda:${t}:${e}:function:${n}`,"buildFunctionArn");0&&(module.exports={FunctionArchitecture,FunctionDefaults,FunctionRuntime,FunctionServiceName,
|
|
183
191
|
FunctionServiceType,MappingService,MappingServiceName,MappingServiceType,PermissionServiceName,
|
|
184
192
|
PermissionServiceType,buildFunctionArn,createFunction,createMapping,createPermission,
|
|
185
193
|
getDefaultVpcConfig,getFunctionArchitecture,getFunctionArn,getFunctionName,getFunctionRuntime,
|
package/dist/main.mjs
CHANGED
|
@@ -1,171 +1,175 @@
|
|
|
1
|
-
var
|
|
2
|
-
import{registerTriggers as
|
|
3
|
-
ReplaceResourceError as
|
|
4
|
-
hashFile as
|
|
5
|
-
import{getRoleArn as
|
|
6
|
-
UpdateFunctionCodeCommand as
|
|
7
|
-
TagResourceCommand as
|
|
8
|
-
waitUntilFunctionUpdated as
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import{LambdaClient as
|
|
12
|
-
daWaiter");import{
|
|
13
|
-
onRuntime");import{ArchitectureType as
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import{
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
1
|
+
var Ue=Object.defineProperty;var o=(n,e)=>Ue(n,"name",{value:e,configurable:!0});import{registerTriggers as dn}from"@ez4/aws-common";import{registerTriggers as fn}from"@ez4/aws-identity";
|
|
2
|
+
import{registerTriggers as yn}from"@ez4/aws-logs";import{tryCreateTrigger as Sn}from"@ez4/project/library";import{tryRegisterProvider as At}from"@ez4/aws-common";import{applyTagUpdates as ft,CorruptedResourceError as yt,getBundleHash as R,OperationLogger as q,
|
|
3
|
+
ReplaceResourceError as St}from"@ez4/aws-common";import{deepCompare as wt,deepEqual as Ft,
|
|
4
|
+
hashFile as ue}from"@ez4/utils";import{getLogGroupName as me}from"@ez4/aws-logs";
|
|
5
|
+
import{getRoleArn as le}from"@ez4/aws-identity";import{GetFunctionCommand as it,CreateFunctionCommand as at,DeleteFunctionCommand as st,
|
|
6
|
+
UpdateFunctionCodeCommand as pt,UpdateFunctionConfigurationCommand as ct,PublishVersionCommand as mr,
|
|
7
|
+
TagResourceCommand as ut,UntagResourceCommand as mt,waitUntilFunctionActive as lt,
|
|
8
|
+
waitUntilFunctionUpdated as Y,waitUntilPublishedVersionActive as ee,ResourceNotFoundException as te,
|
|
9
|
+
SystemLogLevel as ne,LogFormat as re}from"@aws-sdk/client-lambda";import{waitCreation as gt,
|
|
10
|
+
waitDeletion as dt}from"@ez4/aws-common";import{getAwsClientOptions as ze,getAwsClientWaiter as Ge}from"@ez4/aws-common";
|
|
11
|
+
import{LambdaClient as De}from"@aws-sdk/client-lambda";var g=o(()=>new De(ze()),"getLambdaClient"),N=o(n=>({...Ge(),client:n}),"getLamb\
|
|
12
|
+
daWaiter");import{ArchitectureType as Q}from"@ez4/project";var ke=(t=>(t.Arm="arm64",t.x86="x86_64",t))(ke||{});var qe={[Q.Arm]:"arm64",[Q.x86]:"x86_64"},H=o(n=>qe[n],"getFunctionArchitecture");import{RuntimeType as _}from"@ez4/project";var Be=(t=>(t.Node22="nodejs22.x",t.Node24="nodejs24.x",t))(Be||{});var We={[_.Node22]:"nodejs22.x",[_.Node24]:"nodejs24.x"},V=o(n=>We[n],"getFuncti\
|
|
13
|
+
onRuntime");import{ArchitectureType as je,RuntimeType as $e,LogLevel as Ze}from"@ez4/project";
|
|
14
|
+
var I;(s=>(s.LogRetention=90,s.LogLevel=Ze.Warning,s.Architecture=je.x86,s.Runtime=
|
|
15
|
+
$e.Node24,s.Timeout=90,s.Memory=192))(I||={});import{InvalidParameterError as Qe}from"@ez4/aws-common";import{hashData as _e}from"@ez4/utils";var y="AWS:Lambda/Function",w="aws:lambda.function";var Je=/[a-z][\w]+/i,Ke=o(n=>Je.test(n),"isValidName"),O=o(n=>{for(let e in n)if(!Ke(
|
|
16
|
+
e))throw new Qe(y,`${e} is an invalid variable name .`)},"assertVariables"),b=o(
|
|
17
|
+
n=>{let e={};for(let t in n)e[t]=_e(n[t]);return e},"protectVariables");import{ApplicationLogLevel as E}from"@aws-sdk/client-lambda";import{LogLevel as M}from"@ez4/project";var U=o(n=>{switch(n){case M.Information:return E.Info;case M.Debug:return E.Debug;case M.
|
|
18
|
+
Error:return E.Error;default:case M.Warning:return E.Warn}},"getLogLevel");import{dirname as Xe,normalize as Ye}from"node:path";import et from"adm-zip";var J=o(async(n,e,t)=>{let r=new et;return t?.forEach(i=>{r.addLocalFile(i,Xe(Ye(
|
|
19
|
+
i)))}),r.addLocalFile(n,void 0,e),r.toBufferPromise()},"getZipBuffer");import{getDefaultSecurityGroupId as tt,getDefaultSubnetIds as nt,getDefaultVpcId as rt}from"@ez4/aws-vpc";
|
|
20
|
+
import{IncompleteResourceError as K}from"@ez4/aws-common";var T=class extends Error{static{o(this,"FunctionNotFoundError")}constructor(e){
|
|
21
|
+
super(`Function ${e} wasn't found.`)}},L=class extends Error{static{o(this,"Defa\
|
|
22
|
+
ultVpcDetailsError")}constructor(){super("Unable to get the default VPC details.")}};var X=o(n=>n.type===w,"isFunctionState"),ir=o((n,e,t)=>{try{let r=n.getServiceState(
|
|
23
|
+
e,t);if(X(r))return r}catch{}},"tryGetFunctionState"),ar=o((n,e,t)=>{let r=n.getServiceState(
|
|
24
|
+
e,t);if(!X(r))throw new T(e);return r},"getFunctionState"),C=o((n,e,t)=>{let r=t.
|
|
25
|
+
getDependencies(w).at(0)?.parameters;if(!r?.functionName)throw new K(n,e,"functi\
|
|
26
|
+
onName");return r.functionName},"getFunctionName"),ot=o(n=>n.getDependencies(w)[0]?.
|
|
27
|
+
result?.functionArn,"tryGetFunctionArn"),sr=o((n,e,t)=>{let r=ot(t);if(!r)throw new K(
|
|
28
|
+
n,e,"functionArn");return r},"getFunctionArn"),z=o(async()=>{let n=await rt();if(!n)
|
|
29
|
+
throw new L;let[e,t]=await Promise.all([nt(n),tt(n)]);if(!e?.length||!t)throw new L;
|
|
30
|
+
return{subnetIds:e.slice(0,2),securityGroupId:t}},"getDefaultVpcConfig");var oe=o(async(n,e,t)=>{n.update("Importing function");try{let r=await g().send(
|
|
31
|
+
new it({FunctionName:e,Qualifier:t})),i=r.Configuration.Version,a=r.Configuration.
|
|
32
|
+
FunctionArn;return{functionVersion:i,functionArn:a}}catch(r){if(!(r instanceof te))
|
|
33
|
+
throw r;return}},"importFunction"),ie=o(async(n,e)=>{n.update("Creating function");
|
|
34
|
+
let{functionName:t,variables:r}=e;r&&O(r);let i=e.vpc?await z():void 0,a=await pe(
|
|
35
|
+
e.sourceFile,e.files),s=ce(e.handlerName),{description:p,memory:m,timeout:u,publish:c,
|
|
36
|
+
architecture:l,runtime:f,roleArn:d,logGroup:S,logLevel:h}=e,A=g(),j=await gt(()=>A.
|
|
37
|
+
send(new at({FunctionName:t,Description:p,MemorySize:m,Timeout:u,Role:d,Publish:c,
|
|
38
|
+
Handler:s,Architectures:[H(l)],Runtime:V(f),PackageType:"Zip",VpcConfig:{SecurityGroupIds:i?
|
|
39
|
+
[i.securityGroupId]:[],SubnetIds:i?i.subnetIds:[]},LoggingConfig:{LogGroup:S,ApplicationLogLevel:U(
|
|
40
|
+
h??I.LogLevel),SystemLogLevel:ne.Warn,LogFormat:re.Json},Code:{ZipFile:a},Environment:{
|
|
41
|
+
Variables:r},Tags:{...e.tags,ManagedBy:"EZ4"}}))),Oe=j.FunctionArn,$=j.Version,Z=N(
|
|
42
|
+
A);return await lt(Z,{FunctionName:t}),c&&await ee(Z,{FunctionName:t,Qualifier:$}),
|
|
43
|
+
{functionArn:Oe,...c&&{functionVersion:$}}},"createFunction"),G=o(async(n,e,t)=>{
|
|
44
|
+
n.update("Updating source code");let r=await pe(t.sourceFile,t.files),{publish:i,
|
|
45
|
+
architecture:a}=t,s=g(),p=await s.send(new pt({Architectures:a&&[H(a)],FunctionName:e,
|
|
46
|
+
ZipFile:r,Publish:i})),m=p.FunctionArn,u=p.Version,c=N(s);return await Y(c,{FunctionName:e}),
|
|
47
|
+
i&&await ee(c,{FunctionName:e,Qualifier:u}),{functionArn:m,...i&&{functionVersion:u}}},
|
|
48
|
+
"updateSourceCode"),D=o(async(n,e,t)=>{n.update("Updating configuration");let{handlerName:r,
|
|
49
|
+
variables:i}=t;i&&O(i);let a=t.vpc?await z():void 0,{description:s,memory:p,timeout:m,
|
|
50
|
+
runtime:u,roleArn:c,logGroup:l,logLevel:f}=t,d=g();await d.send(new ct({Runtime:u&&
|
|
51
|
+
V(u),FunctionName:e,Description:s,MemorySize:p,Timeout:m,Role:c,...r&&{Handler:ce(
|
|
49
52
|
r)},VpcConfig:{SecurityGroupIds:a?[a.securityGroupId]:[],SubnetIds:a?a.subnetIds:
|
|
50
|
-
[]},LoggingConfig:{LogGroup:
|
|
51
|
-
Warn,LogFormat:
|
|
52
|
-
"updateConfiguration"),
|
|
53
|
-
await
|
|
54
|
-
|
|
55
|
-
Tags:{...
|
|
56
|
-
ag function"),await g().send(new
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
"
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
let{
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
valuesHash
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
"
|
|
104
|
-
send(new
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
"
|
|
53
|
+
[]},LoggingConfig:{LogGroup:l,ApplicationLogLevel:U(f??I.LogLevel),SystemLogLevel:ne.
|
|
54
|
+
Warn,LogFormat:re.Json},Environment:{Variables:i}})),await Y(N(d),{FunctionName:e})},
|
|
55
|
+
"updateConfiguration"),ae=o(async(n,e)=>{e.update("Deleting function");let t=g();
|
|
56
|
+
await dt(async()=>{try{await t.send(new st({FunctionName:n}))}catch(r){if(!(r instanceof
|
|
57
|
+
te))throw r}})},"deleteFunction");var k=o(async(n,e,t)=>{n.update("Tag function"),await g().send(new ut({Resource:e,
|
|
58
|
+
Tags:{...t,ManagedBy:"EZ4"}}))},"tagFunction"),se=o(async(n,e,t)=>{n.update("Unt\
|
|
59
|
+
ag function"),await g().send(new mt({Resource:e,TagKeys:t}))},"untagFunction"),pe=o(
|
|
60
|
+
(n,e)=>J(n,"main.mjs",e),"getSourceZipFile"),ce=o(n=>`main.${n}`,"getSourceHandl\
|
|
61
|
+
erName");var ge=o(()=>({equals:xt,create:de,replace:ht,preview:vt,update:bt,delete:Rt}),"\
|
|
62
|
+
getFunctionHandler"),xt=o((n,e)=>!!n.result&&n.result.functionArn===e.result?.functionArn,
|
|
63
|
+
"equalsResource"),vt=o(async(n,e)=>{let t=n.parameters,r=e.parameters,i=wt({...t,
|
|
64
|
+
connections:n.connections,dependencies:n.dependencies,variables:b(await t.getFunctionVariables()),
|
|
65
|
+
filesHash:t.files&&await R(t.functionName,t.files),sourceHash:await R(...t.getFunctionFiles()),
|
|
66
|
+
valuesHash:t.getFunctionHash()},{...r,connections:e.connections,dependencies:e.dependencies,
|
|
67
|
+
variables:e.result?.variables,sourceHash:e.result?.sourceHash,valuesHash:e.result?.
|
|
68
|
+
valuesHash,filesHash:e.result?.filesHash},{exclude:{release:!0}});if(i.counts)return{
|
|
69
|
+
...i,name:t.functionName}},"previewResource"),ht=o(async(n,e,t)=>{if(e.result)throw new St(
|
|
70
|
+
y,n.entryId,e.entryId);return de(n,t)},"replaceResource"),de=o((n,e)=>{let{functionName:t,
|
|
71
|
+
release:r,...i}=n.parameters;return q.logExecution(y,t,"creation",async a=>{let s=me(
|
|
72
|
+
y,t,e),p=le(y,t,e),[m,u,c,l,f]=await Promise.all([R(...i.getFunctionFiles()),i.files&&
|
|
73
|
+
R(t,i.files),i.getFunctionBundle(e),i.getFunctionHash(),i.getFunctionVariables()]),
|
|
74
|
+
d=await oe(a,t),S=await ue(c);if(d)return await G(a,t,{architecture:i.architecture,
|
|
75
|
+
files:i.files,publish:!1,sourceFile:c}),await D(a,t,{...i,logGroup:s,roleArn:p,variables:{
|
|
76
|
+
...f,...r?.variableName&&{[r.variableName]:r.version}}}),await k(a,d.functionArn,
|
|
77
|
+
{...i.tags,...r?.tagName&&{[r.tagName]:r.version}}),{functionArn:d.functionArn,functionVersion:d.
|
|
78
|
+
functionVersion,variables:b(f),sourceHash:m,valuesHash:l,bundleHash:S,filesHash:u,
|
|
79
|
+
logGroup:s,roleArn:p};let h=await ie(a,{...i,publish:!0,functionName:t,sourceFile:c,
|
|
80
|
+
logGroup:s,roleArn:p,variables:{...f,...r?.variableName&&{[r.variableName]:r.version}},
|
|
81
|
+
tags:{...i.tags,...r?.tagName&&{[r.tagName]:r.version}}});return{functionArn:h.functionArn,
|
|
82
|
+
functionVersion:h.functionVersion,variables:b(f),sourceHash:m,valuesHash:l,bundleHash:S,
|
|
83
|
+
filesHash:u,logGroup:s,roleArn:p}})},"createResource"),bt=o((n,e,t)=>{let{parameters:r,
|
|
84
|
+
result:i}=n,{functionName:a}=r;if(!i)throw new yt(y,a);return q.logExecution(y,a,
|
|
85
|
+
"updates",async s=>{let p=await r.getFunctionVariables(),m=e.result?.variables??
|
|
86
|
+
p,u=le(y,a,t),c=e.result?.roleArn??u,l=me(y,a,t),f=e.result?.logGroup??l,{isUpdated:d,
|
|
87
|
+
...S}=await Pt(s,a,r,e.result,t),h={...r,variables:p,roleArn:u,logGroup:l},A={...e.
|
|
88
|
+
parameters,variables:m,roleArn:c,logGroup:f};return await Lt(s,a,h,A,d,t),await Ct(
|
|
89
|
+
s,i.functionArn,r,e.parameters,d),{...i,...S,variables:b(p),logGroup:l,roleArn:u}})},
|
|
90
|
+
"updateResource"),Rt=o(async n=>{let{result:e,parameters:t}=n;if(!e)return;let{functionName:r}=t;
|
|
91
|
+
await q.logExecution(y,r,"deletion",async i=>{await ae(r,i)})},"deleteResource"),
|
|
92
|
+
Lt=o(async(n,e,t,r,i,a)=>{let{variables:s,...p}=t,m={variables:b(s),...p},u=!Ft(
|
|
93
|
+
m,r,{exclude:{sourceFile:!0,functionName:!0,architecture:!0,release:!0,tags:!0}}),
|
|
94
|
+
c=i?t.release:r.release,l=i&&c?.variableName;(u||l||a.force)&&await D(n,e,{...t,
|
|
95
|
+
variables:{...t.variables,...c?.variableName&&{[c.variableName]:c.version}}})},"\
|
|
96
|
+
checkConfigurationUpdates"),Ct=o(async(n,e,t,r,i)=>{let s=i&&t.release?.version!==
|
|
97
|
+
r.release?.version?t.release:void 0,p={...t.tags,...s?.tagName&&{[s.tagName]:s.version}};
|
|
98
|
+
await ft(p,r.tags,m=>k(n,e,m),m=>se(n,e,m))},"checkTagUpdates"),Pt=o(async(n,e,t,r,i)=>{
|
|
99
|
+
let[a,s,p]=await Promise.all([R(...t.getFunctionFiles()),t.files&&R(e,t.files),t.
|
|
100
|
+
getFunctionHash()]),m=r?.sourceHash,u=r?.valuesHash,c=r?.filesHash;if(a!==m||p!==
|
|
101
|
+
u||s!==c||i.force){let l=await t.getFunctionBundle(i),f=await ue(l),d=r?.bundleHash;
|
|
102
|
+
if(f===d&&s===c&&p===u)return n.update("Skipping source code update"),{isUpdated:!1,
|
|
103
|
+
sourceHash:a};let{functionVersion:S}=await G(n,e,{architecture:t.architecture,publish:!r?.
|
|
104
|
+
functionVersion,sourceFile:l,files:t.files});return{isUpdated:!0,valuesHash:p,sourceHash:a,
|
|
105
|
+
bundleHash:f,filesHash:s,...S&&{functionVersion:S}}}return{isUpdated:!1}},"check\
|
|
106
|
+
SourceCodeUpdates");var fe=o(()=>{At(w,ge())},"registerFunctionProvider");import{tryRegisterProvider as zt}from"@ez4/aws-common";import{OperationLogger as we,ReplaceResourceError as Mt}from"@ez4/aws-common";import{AddPermissionCommand as Nt,RemovePermissionCommand as It,ResourceNotFoundException as Et}from"@aws-sdk/client-lambda";var ye=o(async(n,e)=>{n.update("Creating permission");let t=e.statementId??`ID${Date.
|
|
107
|
+
now()}`;return await g().send(new Nt({StatementId:t,FunctionName:e.functionName,
|
|
108
|
+
SourceArn:e.sourceArn,Principal:e.principal,Action:e.action})),{statementId:t}},
|
|
109
|
+
"createPermission"),Se=o(async(n,e,t)=>{n.update("Deleting permission");try{return await g().
|
|
110
|
+
send(new It({FunctionName:e,StatementId:t})),!0}catch(r){if(!(r instanceof Et))throw r;
|
|
111
|
+
return!1}},"deletePermission");var P="AWS:Lambda/Permission",F="aws:lambda.permission";var Fe=o(()=>({equals:Tt,create:xe,replace:Vt,preview:Ht,update:Ot,delete:Ut}),"\
|
|
112
|
+
getPermissionHandler"),Tt=o((n,e)=>!!n.result&&n.result.functionName===e.result?.
|
|
113
|
+
functionName,"equalsResource"),Ht=o((n,e)=>{},"previewResource"),Vt=o(async(n,e,t)=>{
|
|
114
|
+
if(e.result)throw new Mt(P,n.entryId,e.entryId);return xe(n,t)},"replaceResource"),
|
|
115
|
+
xe=o((n,e)=>{let t=n.parameters,r=C(P,"permission",e);return we.logExecution(P,r,
|
|
116
|
+
"creation",async i=>{let a=await t.getPermission(e);return{statementId:(await ye(
|
|
111
117
|
i,{action:"lambda:InvokeFunction",sourceArn:a.sourceArn,principal:a.principal,functionName:r})).
|
|
112
|
-
statementId,functionName:r}})},"createResource"),
|
|
113
|
-
e"),
|
|
114
|
-
await
|
|
115
|
-
e");var
|
|
116
|
-
import{deepCompare as
|
|
117
|
-
DeleteEventSourceMappingCommand as
|
|
118
|
-
EventSourcePosition as
|
|
119
|
-
import{parseArn as
|
|
120
|
-
let r=await
|
|
121
|
-
async(
|
|
122
|
-
|
|
123
|
-
{FunctionName:e,EventSourceArn:
|
|
124
|
-
UUID}:void 0},"importMapping"),
|
|
125
|
-
sourceArn:
|
|
126
|
-
...
|
|
127
|
-
|
|
128
|
-
FunctionName:r,...
|
|
129
|
-
"Deleting mapping");try{return await g().send(new
|
|
130
|
-
|
|
131
|
-
batch:i}=
|
|
118
|
+
statementId,functionName:r}})},"createResource"),Ot=o(async()=>{},"updateResourc\
|
|
119
|
+
e"),Ut=o(async n=>{let e=n.result;if(!e)return;let{functionName:t,statementId:r}=e;
|
|
120
|
+
await we.logExecution(P,t,"deletion",async i=>{await Se(i,t,r)})},"deleteResourc\
|
|
121
|
+
e");var ve=o(()=>{zt(F,Fe())},"registerPermissionProvider");import{tryRegisterProvider as sn}from"@ez4/aws-common";import{CorruptedResourceError as Jt,OperationLogger as W,ReplaceResourceError as Kt}from"@ez4/aws-common";
|
|
122
|
+
import{deepCompare as Xt,deepEqual as Yt}from"@ez4/utils";import{CreateEventSourceMappingCommand as qt,UpdateEventSourceMappingCommand as Bt,
|
|
123
|
+
DeleteEventSourceMappingCommand as Wt,ListEventSourceMappingsCommand as jt,FunctionResponseType as $t,
|
|
124
|
+
EventSourcePosition as Zt,ResourceNotFoundException as Qt}from"@aws-sdk/client-lambda";
|
|
125
|
+
import{parseArn as _t}from"@ez4/aws-common";import{GetEventSourceMappingCommand as Gt}from"@aws-sdk/client-lambda";import{Wait as he}from"@ez4/utils";var B=o(async(n,e)=>{let t=new Set(["Enabled","Disabled"]);await he.until(async()=>{
|
|
126
|
+
let r=await Dt(n,e);return t.has(r)?!0:he.RetryAttempt})},"waitForReadyState"),Dt=o(
|
|
127
|
+
async(n,e)=>(await n.send(new Gt({UUID:e}))).State,"getMappingState");var x="AWS:Lambda/Mapping",v="aws:lambda.mapping",kt=(t=>(t.DynamoDB="dynamodb",
|
|
128
|
+
t.Queue="sqs",t))(kt||{});var be=o(async(n,e,t)=>{n.update("Importing mapping");let r=await g().send(new jt(
|
|
129
|
+
{FunctionName:e,EventSourceArn:t})),[i]=r.EventSourceMappings;return i?{eventId:i.
|
|
130
|
+
UUID}:void 0},"importMapping"),Re=o(async(n,e)=>{n.update("Creating mapping");let{
|
|
131
|
+
sourceArn:t,functionName:r}=e,i=g(),s=(await i.send(new qt({FunctionName:r,EventSourceArn:t,
|
|
132
|
+
...Pe(e)}))).UUID;return await B(i,s),{eventId:s}},"createMapping"),Le=o(async(n,e,t)=>{
|
|
133
|
+
n.update("Updating mapping");let{functionName:r}=t,i=g();await i.send(new Bt({UUID:e,
|
|
134
|
+
FunctionName:r,...Pe(t)})),await B(i,e)},"updateMapping"),Ce=o(async(n,e)=>{n.update(
|
|
135
|
+
"Deleting mapping");try{return await g().send(new Wt({UUID:e})),!0}catch(t){if(!(t instanceof
|
|
136
|
+
Qt))throw t;return!1}},"deleteMapping"),Pe=o(n=>{let{sourceArn:e,enabled:t,concurrency:r,
|
|
137
|
+
batch:i}=n,{service:a}=_t(e);return{Enabled:t,FunctionResponseTypes:[$t.ReportBatchItemFailures],
|
|
132
138
|
MaximumBatchingWindowInSeconds:i?.maxWait,BatchSize:i?.size,...a==="dynamodb"&&{
|
|
133
|
-
StartingPosition:
|
|
134
|
-
"upsertMappingRequest");var
|
|
135
|
-
getMappingHandler"),
|
|
136
|
-
"equalsResource"),
|
|
137
|
-
r={...e.parameters,dependencies:e.dependencies},i
|
|
138
|
-
if(i.counts)return{...i,name:
|
|
139
|
-
if(e.result)throw new
|
|
140
|
-
|
|
141
|
-
eation",async i=>{let a=await
|
|
142
|
-
await
|
|
143
|
-
sourceArn:a}})},"createResource"),
|
|
144
|
-
if(!r)throw new
|
|
145
|
-
|
|
146
|
-
functionName:p,sourceArn:
|
|
147
|
-
s,r.eventId,
|
|
148
|
-
result;if(!e)return;let{functionName:
|
|
149
|
-
await
|
|
150
|
-
getSourceArn:!0,fromService:!0}})&&await
|
|
151
|
-
"logs:CreateLogStream","logs:PutLogEvents"],resourceIds:[`arn:aws:logs:${e}:${
|
|
152
|
-
:log-group:${
|
|
139
|
+
StartingPosition:Zt.LATEST},...a==="sqs"&&{ScalingConfig:{MaximumConcurrency:r}}}},
|
|
140
|
+
"upsertMappingRequest");var Ae=o(()=>({equals:en,create:Ne,replace:nn,preview:tn,update:rn,delete:on}),"\
|
|
141
|
+
getMappingHandler"),en=o((n,e)=>!!n.result&&n.result.eventId===e.result?.eventId,
|
|
142
|
+
"equalsResource"),tn=o((n,e)=>{let t={...n.parameters,dependencies:n.dependencies},
|
|
143
|
+
r={...e.parameters,dependencies:e.dependencies},i=Xt(t,r,{exclude:{getSourceArn:!0}});
|
|
144
|
+
if(i.counts)return{...i,name:t.fromService}},"previewResource"),nn=o(async(n,e,t)=>{
|
|
145
|
+
if(e.result)throw new Kt(x,n.entryId,e.entryId);return Ne(n,t)},"replaceResource"),
|
|
146
|
+
Ne=o((n,e)=>{let t=n.parameters,r=C(x,"mapping",e);return W.logExecution(x,r,"cr\
|
|
147
|
+
eation",async i=>{let a=await t.getSourceArn(e);return{eventId:(await be(i,r,a)??
|
|
148
|
+
await Re(i,{...n.parameters,functionName:r,sourceArn:a})).eventId,functionName:r,
|
|
149
|
+
sourceArn:a}})},"createResource"),rn=o((n,e,t)=>{let{result:r,parameters:i}=n,{fromService:a}=i;
|
|
150
|
+
if(!r)throw new Jt(x,"mapping");return W.logExecution(x,a,"updates",async s=>{let p=C(
|
|
151
|
+
x,"mapping",t),m=e.result?.functionName??r.functionName,u=r.sourceArn,c={...n.parameters,
|
|
152
|
+
functionName:p,sourceArn:u},l={...e.parameters,functionName:m,sourceArn:u};return await an(
|
|
153
|
+
s,r.eventId,c,l),{...r,functionName:p}})},"updateResource"),on=o(async n=>{let e=n.
|
|
154
|
+
result;if(!e)return;let{functionName:t}=e;await W.logExecution(x,t,"deletion",async r=>{
|
|
155
|
+
await Ce(r,e.eventId)})},"deleteResource"),an=o(async(n,e,t,r)=>{!Yt(t,r,{exclude:{
|
|
156
|
+
getSourceArn:!0,fromService:!0}})&&await Le(n,e,t)},"checkGeneralUpdates");var Ie=o(()=>{sn(v,Ae())},"registerMappingProvider");var Ee=o(()=>[{account:"lambda.amazonaws.com"}],"prepareIdentityAccount");import{createPolicy as mn,tryGetPolicy as ln}from"@ez4/aws-identity";import{getServiceName as gn}from"@ez4/project/library";import{getAccountId as pn,getRegion as cn,createPolicyDocument as un}from"@ez4/aws-identity";var Me=o(async n=>{let[e,t]=await Promise.all([cn(),pn()]);return un([{permissions:[
|
|
157
|
+
"logs:CreateLogStream","logs:PutLogEvents"],resourceIds:[`arn:aws:logs:${e}:${t}\
|
|
158
|
+
:log-group:${n}-*:*`]},{permissions:["ec2:CreateNetworkInterface","ec2:DescribeN\
|
|
153
159
|
etworkInterfaces","ec2:DeleteNetworkInterface"],resourceIds:["*"]}])},"getPolicy\
|
|
154
|
-
Document");var
|
|
155
|
-
e,i)??
|
|
156
|
-
tionPolicy");var
|
|
157
|
-
unt":
|
|
158
|
-
return
|
|
159
|
-
functionName:i}})},"createFunction");import{attachEntry as
|
|
160
|
-
dependencies:[e.entryId,
|
|
161
|
-
let r=
|
|
162
|
-
dependencies:[e.entryId,
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
Zo as getPermission,_ as isFunctionState,ri as isMappingState,Io as registerTriggers,
|
|
170
|
-
Ke as tryGetFunctionArn,_n as tryGetFunctionState};
|
|
160
|
+
Document");var Te=o(async n=>{let{state:e,options:t}=n,r=gn("",t),i=`${r}-lambda-policy`;return ln(
|
|
161
|
+
e,i)??mn(e,{tags:t.tags,policyDocument:await Me(r),policyName:i})},"prepareExecu\
|
|
162
|
+
tionPolicy");var qo=o(()=>{dn(),fn(),yn(),Sn("@ez4/aws-function",{"deploy:prepareIdentityAcco\
|
|
163
|
+
unt":Ee,"deploy:prepareExecutionPolicy":Te}),fe(),ve(),Ie()},"registerTriggers");import{toKebabCase as wn,hashData as Fn}from"@ez4/utils";import{attachEntry as xn}from"@ez4/stateful";var Qo=o((n,e,t,r)=>{let i=wn(r.functionName),a=Fn(w,e.entryId,i),s=[e.entryId];
|
|
164
|
+
return t&&s.push(t.entryId),xn(n,{type:w,entryId:a,dependencies:s,parameters:{...r,
|
|
165
|
+
functionName:i}})},"createFunction");import{attachEntry as vn}from"@ez4/stateful";import{hashData as Ve}from"@ez4/utils";var He=o(n=>n.type===F,"isPermissionState");var oi=o((n,e,t,r)=>{let i=Ve(F,e.entryId,t.entryId);return vn(n,{type:F,entryId:i,
|
|
166
|
+
dependencies:[e.entryId,t.entryId],parameters:r})},"createPermission"),ii=o((n,e,t)=>{
|
|
167
|
+
let r=Ve(F,e.entryId,t.entryId),i=n[r];return i&&He(i)?i:null},"getPermission");import{hashData as hn}from"@ez4/utils";import{attachEntry as bn}from"@ez4/stateful";var mi=o((n,e,t,r)=>{let i=hn(v,e.entryId,t.entryId);return bn(n,{type:v,entryId:i,
|
|
168
|
+
dependencies:[e.entryId,t.entryId],parameters:r})},"createMapping");var fi=o(n=>n.type===v,"isMappingState");var wi=o((n,e,t)=>`arn:aws:lambda:${n}:${e}:function:${t}`,"buildFunctionArn");export{ke as FunctionArchitecture,I as FunctionDefaults,Be as FunctionRuntime,y as FunctionServiceName,
|
|
169
|
+
w as FunctionServiceType,kt as MappingService,x as MappingServiceName,v as MappingServiceType,
|
|
170
|
+
P as PermissionServiceName,F as PermissionServiceType,wi as buildFunctionArn,Qo as createFunction,
|
|
171
|
+
mi as createMapping,oi as createPermission,z as getDefaultVpcConfig,H as getFunctionArchitecture,
|
|
172
|
+
sr as getFunctionArn,C as getFunctionName,V as getFunctionRuntime,ar as getFunctionState,
|
|
173
|
+
ii as getPermission,X as isFunctionState,fi as isMappingState,qo as registerTriggers,
|
|
174
|
+
ot as tryGetFunctionArn,ir as tryGetFunctionState};
|
|
171
175
|
//# sourceMappingURL=main.mjs.map
|
package/dist/utils/defaults.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { ArchitectureType, RuntimeType } from '@ez4/project';
|
|
1
|
+
import { ArchitectureType, RuntimeType, LogLevel as ProjectLogLevel } from '@ez4/project';
|
|
2
2
|
export declare namespace FunctionDefaults {
|
|
3
3
|
/**
|
|
4
4
|
* Default log retention in days.
|
|
5
5
|
*/
|
|
6
6
|
const LogRetention = 90;
|
|
7
|
+
/**
|
|
8
|
+
* Default function log level.
|
|
9
|
+
*/
|
|
10
|
+
const LogLevel = ProjectLogLevel.Warning;
|
|
7
11
|
/**
|
|
8
12
|
* Default function architecture.
|
|
9
13
|
*/
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ez4/aws-function",
|
|
3
3
|
"description": "EZ4: Self-managed AWS lambda function provider",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.44.0",
|
|
5
5
|
"author": "Silas B.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -42,15 +42,15 @@
|
|
|
42
42
|
"live:publish": "npm run build && npm publish --access public"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@aws-sdk/client-lambda": "^3.
|
|
46
|
-
"@ez4/aws-common": "^0.
|
|
47
|
-
"@ez4/aws-identity": "^0.
|
|
48
|
-
"@ez4/aws-logs": "^0.
|
|
49
|
-
"@ez4/aws-vpc": "^0.
|
|
50
|
-
"@ez4/project": "^0.
|
|
51
|
-
"@ez4/common": "^0.
|
|
52
|
-
"@ez4/stateful": "^0.
|
|
53
|
-
"@ez4/utils": "^0.
|
|
45
|
+
"@aws-sdk/client-lambda": "^3.996.0",
|
|
46
|
+
"@ez4/aws-common": "^0.44.0",
|
|
47
|
+
"@ez4/aws-identity": "^0.44.0",
|
|
48
|
+
"@ez4/aws-logs": "^0.44.0",
|
|
49
|
+
"@ez4/aws-vpc": "^0.44.0",
|
|
50
|
+
"@ez4/project": "^0.44.0",
|
|
51
|
+
"@ez4/common": "^0.44.0",
|
|
52
|
+
"@ez4/stateful": "^0.44.0",
|
|
53
|
+
"@ez4/utils": "^0.44.0",
|
|
54
54
|
"@types/adm-zip": "^0.5.5",
|
|
55
55
|
"adm-zip": "^0.5.14"
|
|
56
56
|
}
|