@webda/azure 0.0.0-stage → 4.0.0-beta.14
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/LICENSE +166 -0
- package/README.md +248 -2
- package/lib/auth.d.ts +36 -0
- package/lib/auth.d.ts.map +1 -0
- package/lib/auth.js +70 -0
- package/lib/auth.js.map +1 -0
- package/lib/deployers/arm.service.d.ts +177 -0
- package/lib/deployers/arm.service.d.ts.map +1 -0
- package/lib/deployers/arm.service.js +307 -0
- package/lib/deployers/arm.service.js.map +1 -0
- package/lib/deployers/containerapps.service.d.ts +186 -0
- package/lib/deployers/containerapps.service.d.ts.map +1 -0
- package/lib/deployers/containerapps.service.js +482 -0
- package/lib/deployers/containerapps.service.js.map +1 -0
- package/lib/deployers/functions-entrypoint.d.ts +60 -0
- package/lib/deployers/functions-entrypoint.d.ts.map +1 -0
- package/lib/deployers/functions-entrypoint.js +78 -0
- package/lib/deployers/functions-entrypoint.js.map +1 -0
- package/lib/deployers/functions.service.d.ts +96 -0
- package/lib/deployers/functions.service.d.ts.map +1 -0
- package/lib/deployers/functions.service.js +340 -0
- package/lib/deployers/functions.service.js.map +1 -0
- package/lib/deployers/functionspackager.service.d.ts +82 -0
- package/lib/deployers/functionspackager.service.d.ts.map +1 -0
- package/lib/deployers/functionspackager.service.js +157 -0
- package/lib/deployers/functionspackager.service.js.map +1 -0
- package/lib/index.d.ts +15 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +18 -0
- package/lib/index.js.map +1 -0
- package/lib/services/azure-parameters.d.ts +56 -0
- package/lib/services/azure-parameters.d.ts.map +1 -0
- package/lib/services/azure-parameters.js +43 -0
- package/lib/services/azure-parameters.js.map +1 -0
- package/lib/services/blob.service.d.ts +196 -0
- package/lib/services/blob.service.d.ts.map +1 -0
- package/lib/services/blob.service.js +450 -0
- package/lib/services/blob.service.js.map +1 -0
- package/lib/services/contributors.d.ts +50 -0
- package/lib/services/contributors.d.ts.map +1 -0
- package/lib/services/contributors.js +2 -0
- package/lib/services/contributors.js.map +1 -0
- package/lib/services/cosmos.service.d.ts +253 -0
- package/lib/services/cosmos.service.d.ts.map +1 -0
- package/lib/services/cosmos.service.js +566 -0
- package/lib/services/cosmos.service.js.map +1 -0
- package/lib/services/functionserver.service.d.ts +51 -0
- package/lib/services/functionserver.service.d.ts.map +1 -0
- package/lib/services/functionserver.service.js +232 -0
- package/lib/services/functionserver.service.js.map +1 -0
- package/lib/services/keyvault.service.d.ts +106 -0
- package/lib/services/keyvault.service.d.ts.map +1 -0
- package/lib/services/keyvault.service.js +228 -0
- package/lib/services/keyvault.service.js.map +1 -0
- package/lib/services/monitorlogger.service.d.ts +117 -0
- package/lib/services/monitorlogger.service.d.ts.map +1 -0
- package/lib/services/monitorlogger.service.js +149 -0
- package/lib/services/monitorlogger.service.js.map +1 -0
- package/lib/services/servicebus.service.d.ts +224 -0
- package/lib/services/servicebus.service.d.ts.map +1 -0
- package/lib/services/servicebus.service.js +351 -0
- package/lib/services/servicebus.service.js.map +1 -0
- package/lib/template.d.ts +68 -0
- package/lib/template.d.ts.map +1 -0
- package/lib/template.js +74 -0
- package/lib/template.js.map +1 -0
- package/package.json +77 -3
- package/webda.module.json +1891 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"containerapps.service.js","sources":["../../src/deployers/containerapps.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";
|
|
2
|
+
import { InstanceStorage } from "@webda/core";
|
|
3
|
+
import { AzureFunctionServer } from "../services/functionserver.service.js";
|
|
4
|
+
/**
|
|
5
|
+
* Azure function application interface
|
|
6
|
+
*/
|
|
7
|
+
export interface AzureFunctionApplication {
|
|
8
|
+
/**
|
|
9
|
+
* Server
|
|
10
|
+
*/
|
|
11
|
+
server: AzureFunctionServer;
|
|
12
|
+
/**
|
|
13
|
+
* Instance
|
|
14
|
+
*/
|
|
15
|
+
instance: InstanceStorage;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Load a packaged application through Webda's DI container in its own async storage.
|
|
19
|
+
* @param path - Application folder or content path
|
|
20
|
+
* @returns The boot azure function server result
|
|
21
|
+
*/
|
|
22
|
+
export declare function bootAzureFunctionServer(path?: string): Promise<AzureFunctionApplication>;
|
|
23
|
+
/**
|
|
24
|
+
* Memoized boot with recovery after failures; each concurrent invocation enters its own request context.
|
|
25
|
+
* @param boot - Application boot factory
|
|
26
|
+
* @returns HTTP, event and cron invocation handlers
|
|
27
|
+
*/
|
|
28
|
+
export declare function createAzureHandlers(boot?: typeof bootAzureFunctionServer): {
|
|
29
|
+
http: (request: HttpRequest, context: InvocationContext) => Promise<HttpResponseInit>;
|
|
30
|
+
event: (source: "servicebus" | "blob" | "timer", event: unknown, context: InvocationContext) => Promise<void>;
|
|
31
|
+
cron: (id: string) => Promise<void>;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Azure trigger type definition
|
|
35
|
+
*/
|
|
36
|
+
export type AzureTrigger = {
|
|
37
|
+
name: string;
|
|
38
|
+
type: "servicebus";
|
|
39
|
+
queueName: string;
|
|
40
|
+
connection: string;
|
|
41
|
+
} | {
|
|
42
|
+
name: string;
|
|
43
|
+
type: "blob";
|
|
44
|
+
path: string;
|
|
45
|
+
connection: string;
|
|
46
|
+
} | {
|
|
47
|
+
name: string;
|
|
48
|
+
type: "timer";
|
|
49
|
+
schedule: string;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Called only by the generated Functions bootstrap, never by the package's normal import.
|
|
53
|
+
* @param crons - Exported cron definitions
|
|
54
|
+
* @param triggers - Additional event binding declarations
|
|
55
|
+
*/
|
|
56
|
+
export declare function registerAzureFunctions(crons?: {
|
|
57
|
+
id: string;
|
|
58
|
+
schedule: string;
|
|
59
|
+
}[], triggers?: AzureTrigger[]): void;
|
|
60
|
+
//# sourceMappingURL=functions-entrypoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions-entrypoint.d.ts","sources":["../../src/deployers/functions-entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAGL,eAAe,EAIhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,SAAgB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAiBrG;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,iCAA0B;IAW9D,IAAI,YAAY,WAAW,WAAW,iBAAiB,KAAG,OAAO,CAAC,gBAAgB,CAAC;IAEnF,KAAK,WAAW,YAAY,GAAG,MAAM,GAAG,OAAO,SAAS,OAAO,WAAW,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC;IAE3G,IAAI,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;EAEpC;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,GAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAO,EAC9C,QAAQ,GAAE,YAAY,EAAO,GAC5B,IAAI,CA6BN"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { app } from "@azure/functions";
|
|
2
|
+
import { Application, Core, runWithInstanceStorage, useInstanceStorage, WebdaError } from "@webda/core";
|
|
3
|
+
import { AzureFunctionServer } from "../services/functionserver.service.js";
|
|
4
|
+
/**
|
|
5
|
+
* Load a packaged application through Webda's DI container in its own async storage.
|
|
6
|
+
* @param path - Application folder or content path
|
|
7
|
+
* @returns The boot azure function server result
|
|
8
|
+
*/
|
|
9
|
+
export async function bootAzureFunctionServer(path = process.cwd()) {
|
|
10
|
+
return runWithInstanceStorage({}, async () => {
|
|
11
|
+
const application = new Application(path);
|
|
12
|
+
useInstanceStorage().application = application;
|
|
13
|
+
await application.load();
|
|
14
|
+
const core = new Core(application);
|
|
15
|
+
await core.init();
|
|
16
|
+
const server = Object.values(core.getServices()).find(service => service instanceof AzureFunctionServer || service.constructor.name === "AzureFunctionServer");
|
|
17
|
+
if (!server)
|
|
18
|
+
throw new WebdaError.CodeError("AZURE_FUNCTION_SERVER", "No AzureFunctionServer is configured in the application");
|
|
19
|
+
return { server, instance: useInstanceStorage() };
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Memoized boot with recovery after failures; each concurrent invocation enters its own request context.
|
|
24
|
+
* @param boot - Application boot factory
|
|
25
|
+
* @returns HTTP, event and cron invocation handlers
|
|
26
|
+
*/
|
|
27
|
+
export function createAzureHandlers(boot = bootAzureFunctionServer) {
|
|
28
|
+
let booted;
|
|
29
|
+
const invoke = async (callback) => {
|
|
30
|
+
booted ?? (booted = boot().catch(error => {
|
|
31
|
+
booted = undefined;
|
|
32
|
+
throw error;
|
|
33
|
+
}));
|
|
34
|
+
const { server, instance } = await booted;
|
|
35
|
+
return runWithInstanceStorage(instance, () => callback(server));
|
|
36
|
+
};
|
|
37
|
+
return {
|
|
38
|
+
http: (request, context) => invoke(server => server.handleRequest(request, context)),
|
|
39
|
+
event: (source, event, context) => invoke(server => server.handleEvent(source, event, context)),
|
|
40
|
+
cron: (id) => invoke(server => server.handleCron(id))
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Called only by the generated Functions bootstrap, never by the package's normal import.
|
|
45
|
+
* @param crons - Exported cron definitions
|
|
46
|
+
* @param triggers - Additional event binding declarations
|
|
47
|
+
*/
|
|
48
|
+
export function registerAzureFunctions(crons = [], triggers = []) {
|
|
49
|
+
const handlers = createAzureHandlers();
|
|
50
|
+
app.http("webda", {
|
|
51
|
+
route: "{*path}",
|
|
52
|
+
authLevel: "anonymous",
|
|
53
|
+
methods: ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD"],
|
|
54
|
+
handler: handlers.http
|
|
55
|
+
});
|
|
56
|
+
for (const cron of crons)
|
|
57
|
+
app.timer(`cron-${cron.id}`, { schedule: cron.schedule, handler: () => handlers.cron(cron.id) });
|
|
58
|
+
for (const trigger of triggers) {
|
|
59
|
+
if (trigger.type === "servicebus")
|
|
60
|
+
app.serviceBusQueue(trigger.name, {
|
|
61
|
+
queueName: trigger.queueName,
|
|
62
|
+
connection: trigger.connection,
|
|
63
|
+
handler: (event, context) => handlers.event("servicebus", event, context)
|
|
64
|
+
});
|
|
65
|
+
else if (trigger.type === "blob")
|
|
66
|
+
app.storageBlob(trigger.name, {
|
|
67
|
+
path: trigger.path,
|
|
68
|
+
connection: trigger.connection,
|
|
69
|
+
handler: (event, context) => handlers.event("blob", event, context)
|
|
70
|
+
});
|
|
71
|
+
else
|
|
72
|
+
app.timer(trigger.name, {
|
|
73
|
+
schedule: trigger.schedule,
|
|
74
|
+
handler: (event, context) => handlers.event("timer", event, context)
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=functions-entrypoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions-entrypoint.js","sources":["../../src/deployers/functions-entrypoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Deployer, SecretString } from "@webda/core";
|
|
2
|
+
import { AzureTemplate } from "../template.js";
|
|
3
|
+
import { AzureArmDeployer, AzureArmDeployerParameters, AzureDeployResult } from "./arm.service.js";
|
|
4
|
+
import { AzureFunctionsPackageOptions } from "./functionspackager.service.js";
|
|
5
|
+
import type { AzureTrigger } from "./functions-entrypoint.js";
|
|
6
|
+
/** Azure Functions Flex Consumption unit settings. */
|
|
7
|
+
export declare class AzureFunctionsDeployerParameters extends AzureArmDeployerParameters implements AzureFunctionsPackageOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Function app
|
|
10
|
+
*/
|
|
11
|
+
functionApp: string;
|
|
12
|
+
/**
|
|
13
|
+
* Storage account
|
|
14
|
+
*/
|
|
15
|
+
storageAccount: string;
|
|
16
|
+
/**
|
|
17
|
+
* Plan
|
|
18
|
+
*/
|
|
19
|
+
plan?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Zip path
|
|
22
|
+
*/
|
|
23
|
+
zipPath: string;
|
|
24
|
+
/**
|
|
25
|
+
* Memory
|
|
26
|
+
*/
|
|
27
|
+
memory: number;
|
|
28
|
+
/**
|
|
29
|
+
* Maximum instance count
|
|
30
|
+
*/
|
|
31
|
+
maximumInstanceCount: number;
|
|
32
|
+
/**
|
|
33
|
+
* App settings
|
|
34
|
+
*/
|
|
35
|
+
appSettings: Record<string, string | SecretString>;
|
|
36
|
+
/**
|
|
37
|
+
* Triggers
|
|
38
|
+
*/
|
|
39
|
+
triggers?: AzureTrigger[];
|
|
40
|
+
/**
|
|
41
|
+
* Deployment timeout
|
|
42
|
+
*/
|
|
43
|
+
deploymentTimeout: number;
|
|
44
|
+
}
|
|
45
|
+
/** Deploy a Node 22 Functions application with Flex Consumption OneDeploy.
|
|
46
|
+
* @WebdaModda
|
|
47
|
+
*/
|
|
48
|
+
export declare class AzureFunctionsDeployer extends AzureArmDeployer<AzureFunctionsDeployerParameters> implements Deployer {
|
|
49
|
+
/**
|
|
50
|
+
* Parameters
|
|
51
|
+
*/
|
|
52
|
+
static Parameters: typeof AzureFunctionsDeployerParameters;
|
|
53
|
+
/**
|
|
54
|
+
* Write the generated ARM template for review.
|
|
55
|
+
* @param output - Optional template output path
|
|
56
|
+
* @returns Generated ARM template
|
|
57
|
+
*/
|
|
58
|
+
generate(output?: string): Promise<AzureTemplate>;
|
|
59
|
+
/**
|
|
60
|
+
* Build the Functions archive for this deployment unit.
|
|
61
|
+
* @returns The package application result
|
|
62
|
+
*/
|
|
63
|
+
packageApplication(): Promise<import("./functionspackager.service.js").AzureFunctionsPackageResult>;
|
|
64
|
+
/**
|
|
65
|
+
* Return the application resource identifier.
|
|
66
|
+
* @returns The app resource id result
|
|
67
|
+
*/
|
|
68
|
+
getAppResourceId(): string;
|
|
69
|
+
/**
|
|
70
|
+
* Return the managed identity resource identifier.
|
|
71
|
+
* @returns The identity resource id result
|
|
72
|
+
*/
|
|
73
|
+
protected getIdentityResourceId(): string;
|
|
74
|
+
/**
|
|
75
|
+
* Return the ARM expression for the application principal.
|
|
76
|
+
* @returns The app principal id result
|
|
77
|
+
*/
|
|
78
|
+
getAppPrincipalId(): string;
|
|
79
|
+
/**
|
|
80
|
+
* Generate the deployment template without contacting Azure.
|
|
81
|
+
* @returns ARM template without secret values
|
|
82
|
+
*/
|
|
83
|
+
generateTemplate(): AzureTemplate;
|
|
84
|
+
/**
|
|
85
|
+
* Flex Consumption accepts OneDeploy packages at /api/publish.
|
|
86
|
+
* @param zipPath - Path of the Functions deployment archive
|
|
87
|
+
* @param scmHost - Trusted Azure SCM hostname
|
|
88
|
+
*/
|
|
89
|
+
publish(zipPath: string, scmHost: string): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Publish and deploy the application, returning its endpoints.
|
|
92
|
+
* @returns The deploy result
|
|
93
|
+
*/
|
|
94
|
+
deploy(): Promise<AzureDeployResult>;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=functions.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.service.d.ts","sources":["../../src/deployers/functions.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,QAAQ,EAAE,YAAY,EAA8B,MAAM,aAAa,CAAC;AAGvG,OAAO,EAAY,aAAa,EAAgC,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,4BAA4B,EAA+B,MAAM,gCAAgC,CAAC;AAC3G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,sDAAsD;AACtD,qBAAa,gCACX,SAAQ,0BACR,YAAW,4BAA4B;IAEvC;;OAEG;IACH,WAAW,EAAG,MAAM,CAAC;IACrB;;OAEG;IACH,cAAc,EAAG,MAAM,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,SAA8B;IACrC;;OAEG;IACH,MAAM,SAAQ;IACd;;OAEG;IACH,oBAAoB,SAAO;IAC3B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAM;IACxD;;OAEG;IACH,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B;;OAEG;IACH,iBAAiB,SAAU;CAC5B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,gBAAgB,CAAC,gCAAgC,CAAE,YAAW,QAAQ;IAChH;;OAEG;IACH,MAAM,CAAC,UAAU,0CAAoC;IAErD;;;;OAIG;IAEG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAEtD;IAED;;;OAGG;IAEG,kBAAkB,kFAYvB;IACD;;;OAGG;IACH,gBAAgB,IAAI,MAAM,CAEzB;IACD;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,MAAM,CAExC;IACD;;;OAGG;IACH,iBAAiB,IAAI,MAAM,CAE1B;IAED;;;OAGG;IACH,gBAAgB,IAAI,aAAa,CAmIhC;IAED;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC7D;IAED;;;OAGG;IAEG,MAAM,IAAI,OAAO,CAAC,iBAAiB,CAAC,CASzC;CACF"}
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
2
|
+
var useValue = arguments.length > 2;
|
|
3
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
4
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
5
|
+
}
|
|
6
|
+
return useValue ? value : void 0;
|
|
7
|
+
};
|
|
8
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
9
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
10
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
11
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
12
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
13
|
+
var _, done = false;
|
|
14
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
15
|
+
var context = {};
|
|
16
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
17
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
18
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
19
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
20
|
+
if (kind === "accessor") {
|
|
21
|
+
if (result === void 0) continue;
|
|
22
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
23
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
24
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
25
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
26
|
+
}
|
|
27
|
+
else if (_ = accept(result)) {
|
|
28
|
+
if (kind === "field") initializers.unshift(_);
|
|
29
|
+
else descriptor[key] = _;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
33
|
+
done = true;
|
|
34
|
+
};
|
|
35
|
+
import { Command, CronService, SecretString, useApplication, WebdaError } from "@webda/core";
|
|
36
|
+
import { readFileSync } from "node:fs";
|
|
37
|
+
import { AzureAuth } from "../auth.js";
|
|
38
|
+
import { armValue, resourceId, roleAssignmentId } from "../template.js";
|
|
39
|
+
import { AzureArmDeployer, AzureArmDeployerParameters } from "./arm.service.js";
|
|
40
|
+
import { createAzureFunctionsPackage } from "./functionspackager.service.js";
|
|
41
|
+
/** Azure Functions Flex Consumption unit settings. */
|
|
42
|
+
export class AzureFunctionsDeployerParameters extends AzureArmDeployerParameters {
|
|
43
|
+
constructor() {
|
|
44
|
+
super(...arguments);
|
|
45
|
+
/**
|
|
46
|
+
* Zip path
|
|
47
|
+
*/
|
|
48
|
+
this.zipPath = "dist/azure-functions.zip";
|
|
49
|
+
/**
|
|
50
|
+
* Memory
|
|
51
|
+
*/
|
|
52
|
+
this.memory = 2048;
|
|
53
|
+
/**
|
|
54
|
+
* Maximum instance count
|
|
55
|
+
*/
|
|
56
|
+
this.maximumInstanceCount = 100;
|
|
57
|
+
/**
|
|
58
|
+
* App settings
|
|
59
|
+
*/
|
|
60
|
+
this.appSettings = {};
|
|
61
|
+
/**
|
|
62
|
+
* Deployment timeout
|
|
63
|
+
*/
|
|
64
|
+
this.deploymentTimeout = 600000;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** Deploy a Node 22 Functions application with Flex Consumption OneDeploy.
|
|
68
|
+
* @WebdaModda
|
|
69
|
+
*/
|
|
70
|
+
let AzureFunctionsDeployer = (() => {
|
|
71
|
+
var _a;
|
|
72
|
+
let _classSuper = AzureArmDeployer;
|
|
73
|
+
let _instanceExtraInitializers = [];
|
|
74
|
+
let _generate_decorators;
|
|
75
|
+
let _packageApplication_decorators;
|
|
76
|
+
let _deploy_decorators;
|
|
77
|
+
return _a = class AzureFunctionsDeployer extends _classSuper {
|
|
78
|
+
/**
|
|
79
|
+
* Write the generated ARM template for review.
|
|
80
|
+
* @param output - Optional template output path
|
|
81
|
+
* @returns Generated ARM template
|
|
82
|
+
*/
|
|
83
|
+
async generate(output) {
|
|
84
|
+
return super.generate(output);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Build the Functions archive for this deployment unit.
|
|
88
|
+
* @returns The package application result
|
|
89
|
+
*/
|
|
90
|
+
async packageApplication() {
|
|
91
|
+
const p = this.getResolvedParameters();
|
|
92
|
+
const crons = CronService.resolveCrons().map(cron => ({
|
|
93
|
+
id: CronService.getExportId(cron),
|
|
94
|
+
schedule: cron.cron
|
|
95
|
+
}));
|
|
96
|
+
return createAzureFunctionsPackage(useApplication(), {
|
|
97
|
+
zipPath: p.zipPath,
|
|
98
|
+
package: p.package,
|
|
99
|
+
triggers: p.triggers,
|
|
100
|
+
crons
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Return the application resource identifier.
|
|
105
|
+
* @returns The app resource id result
|
|
106
|
+
*/
|
|
107
|
+
getAppResourceId() {
|
|
108
|
+
return resourceId("Microsoft.Web/sites", this.resources.functionApp);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Return the managed identity resource identifier.
|
|
112
|
+
* @returns The identity resource id result
|
|
113
|
+
*/
|
|
114
|
+
getIdentityResourceId() {
|
|
115
|
+
return resourceId("Microsoft.ManagedIdentity/userAssignedIdentities", `${this.resources.functionApp}-identity`);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Return the ARM expression for the application principal.
|
|
119
|
+
* @returns The app principal id result
|
|
120
|
+
*/
|
|
121
|
+
getAppPrincipalId() {
|
|
122
|
+
return `[reference(${armValue(this.getIdentityResourceId())}, '2023-01-31').principalId]`;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Generate the deployment template without contacting Azure.
|
|
126
|
+
* @returns ARM template without secret values
|
|
127
|
+
*/
|
|
128
|
+
generateTemplate() {
|
|
129
|
+
this.prepare();
|
|
130
|
+
const p = this.resources;
|
|
131
|
+
if (!/^[a-z0-9]{3,24}$/.test(p.storageAccount) || !/^[a-zA-Z0-9][a-zA-Z0-9-]{0,58}[a-zA-Z0-9]$/.test(p.functionApp))
|
|
132
|
+
throw new WebdaError.BadRequest("Functions requires valid functionApp and storageAccount names");
|
|
133
|
+
if (![512, 2048, 4096].includes(p.memory) ||
|
|
134
|
+
!Number.isInteger(p.maximumInstanceCount) ||
|
|
135
|
+
p.maximumInstanceCount < 40 ||
|
|
136
|
+
p.maximumInstanceCount > 1000)
|
|
137
|
+
throw new WebdaError.BadRequest("Invalid Functions Flex memory or instance count");
|
|
138
|
+
const storage = resourceId("Microsoft.Storage/storageAccounts", p.storageAccount), planName = p.plan ?? `${p.functionApp}-plan`;
|
|
139
|
+
this.addResource({
|
|
140
|
+
type: "Microsoft.ManagedIdentity/userAssignedIdentities",
|
|
141
|
+
apiVersion: "2023-01-31",
|
|
142
|
+
name: `${p.functionApp}-identity`,
|
|
143
|
+
location: p.location,
|
|
144
|
+
tags: this.getDefaultTags()
|
|
145
|
+
});
|
|
146
|
+
this.addResource({
|
|
147
|
+
type: "Microsoft.Storage/storageAccounts",
|
|
148
|
+
apiVersion: "2023-05-01",
|
|
149
|
+
name: p.storageAccount,
|
|
150
|
+
location: p.location,
|
|
151
|
+
kind: "StorageV2",
|
|
152
|
+
sku: { name: "Standard_LRS" },
|
|
153
|
+
tags: this.getDefaultTags(),
|
|
154
|
+
properties: {
|
|
155
|
+
supportsHttpsTrafficOnly: true,
|
|
156
|
+
minimumTlsVersion: "TLS1_2",
|
|
157
|
+
allowBlobPublicAccess: false,
|
|
158
|
+
allowSharedKeyAccess: false
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
this.addResource({
|
|
162
|
+
type: "Microsoft.Storage/storageAccounts/blobServices/containers",
|
|
163
|
+
apiVersion: "2023-05-01",
|
|
164
|
+
name: `${p.storageAccount}/default/deployments`,
|
|
165
|
+
dependsOn: [storage],
|
|
166
|
+
properties: { publicAccess: "None" }
|
|
167
|
+
});
|
|
168
|
+
this.addResource({
|
|
169
|
+
type: "Microsoft.Web/serverfarms",
|
|
170
|
+
apiVersion: "2024-04-01",
|
|
171
|
+
name: planName,
|
|
172
|
+
location: p.location,
|
|
173
|
+
kind: "functionapp",
|
|
174
|
+
sku: { tier: "FlexConsumption", name: "FC1" },
|
|
175
|
+
properties: { reserved: true },
|
|
176
|
+
tags: this.getDefaultTags()
|
|
177
|
+
});
|
|
178
|
+
this.Resources();
|
|
179
|
+
for (const role of ["b7e6dc6d-f1e8-4753-8033-0f276bb0955b", "974c5e8b-45b9-4653-ba55-5f855dd0fb88"])
|
|
180
|
+
this.roles.push({
|
|
181
|
+
scope: storage,
|
|
182
|
+
roleDefinitionId: `/subscriptions/${p.subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/${role}`
|
|
183
|
+
});
|
|
184
|
+
this.grantRoles();
|
|
185
|
+
const clientId = `[reference(${armValue(this.getIdentityResourceId())}, '2023-01-31').clientId]`;
|
|
186
|
+
const settings = {
|
|
187
|
+
...this.contributedEnv,
|
|
188
|
+
FUNCTIONS_WORKER_RUNTIME: "node",
|
|
189
|
+
AzureWebJobsStorage__accountName: p.storageAccount,
|
|
190
|
+
AzureWebJobsStorage__credential: "managedidentity",
|
|
191
|
+
AzureWebJobsStorage__clientId: clientId,
|
|
192
|
+
AZURE_CLIENT_ID: clientId,
|
|
193
|
+
...p.appSettings
|
|
194
|
+
};
|
|
195
|
+
const appSettings = Object.entries(settings).map(([name, value]) => {
|
|
196
|
+
if (typeof value === "object" && !(value instanceof SecretString))
|
|
197
|
+
throw new WebdaError.BadRequest("Functions contributor settings must use Key Vault references or appSettings SecretString values");
|
|
198
|
+
return { name, value: value instanceof SecretString ? this.secureParameter(value) : value };
|
|
199
|
+
});
|
|
200
|
+
this.addResource({
|
|
201
|
+
type: "Microsoft.Web/sites",
|
|
202
|
+
apiVersion: "2024-04-01",
|
|
203
|
+
name: p.functionApp,
|
|
204
|
+
location: p.location,
|
|
205
|
+
kind: "functionapp,linux",
|
|
206
|
+
tags: this.getDefaultTags(),
|
|
207
|
+
identity: {
|
|
208
|
+
type: "SystemAssigned, UserAssigned",
|
|
209
|
+
userAssignedIdentities: { [this.getIdentityResourceId()]: {} }
|
|
210
|
+
},
|
|
211
|
+
dependsOn: [
|
|
212
|
+
storage,
|
|
213
|
+
this.getIdentityResourceId(),
|
|
214
|
+
resourceId("Microsoft.Web/serverfarms", planName),
|
|
215
|
+
resourceId("Microsoft.Storage/storageAccounts/blobServices/containers", p.storageAccount, "default", "deployments"),
|
|
216
|
+
...this.template.resources
|
|
217
|
+
.filter(resource => resource.type === "Microsoft.Authorization/roleAssignments")
|
|
218
|
+
.map(roleAssignmentId)
|
|
219
|
+
],
|
|
220
|
+
properties: {
|
|
221
|
+
serverFarmId: resourceId("Microsoft.Web/serverfarms", planName),
|
|
222
|
+
httpsOnly: true,
|
|
223
|
+
siteConfig: { appSettings, minTlsVersion: "1.2" },
|
|
224
|
+
functionAppConfig: {
|
|
225
|
+
runtime: { name: "node", version: "22" },
|
|
226
|
+
scaleAndConcurrency: { instanceMemoryMB: p.memory, maximumInstanceCount: p.maximumInstanceCount },
|
|
227
|
+
deployment: {
|
|
228
|
+
storage: {
|
|
229
|
+
type: "blobContainer",
|
|
230
|
+
value: `https://${p.storageAccount}.blob.core.windows.net/deployments`,
|
|
231
|
+
authentication: {
|
|
232
|
+
type: "UserAssignedIdentity",
|
|
233
|
+
userAssignedIdentityResourceId: this.getIdentityResourceId()
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
this.template.outputs.fqdn = {
|
|
241
|
+
type: "string",
|
|
242
|
+
value: `[reference(${armValue(this.getAppResourceId())}, '2024-04-01').defaultHostName]`
|
|
243
|
+
};
|
|
244
|
+
this.template.outputs.hostNames = {
|
|
245
|
+
type: "array",
|
|
246
|
+
value: `[reference(${armValue(this.getAppResourceId())}, '2024-04-01').enabledHostNames]`
|
|
247
|
+
};
|
|
248
|
+
return this.template;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Flex Consumption accepts OneDeploy packages at /api/publish.
|
|
252
|
+
* @param zipPath - Path of the Functions deployment archive
|
|
253
|
+
* @param scmHost - Trusted Azure SCM hostname
|
|
254
|
+
*/
|
|
255
|
+
async publish(zipPath, scmHost) {
|
|
256
|
+
if (!/^[a-zA-Z0-9-]+\.scm\.(?:[a-zA-Z0-9-]+\.)?azurewebsites\.net$/.test(scmHost))
|
|
257
|
+
throw new WebdaError.BadRequest("Invalid Azure Functions SCM hostname");
|
|
258
|
+
const auth = new AzureAuth(this.resources);
|
|
259
|
+
const headers = { Authorization: `Bearer ${await auth.getArmToken()}`, "Content-Type": "application/zip" };
|
|
260
|
+
const origin = `https://${scmHost}`;
|
|
261
|
+
const deadline = Date.now() + this.resources.deploymentTimeout;
|
|
262
|
+
try {
|
|
263
|
+
let response = await fetch(`${origin}/api/publish?type=zip&remoteBuild=false`, {
|
|
264
|
+
method: "POST",
|
|
265
|
+
headers,
|
|
266
|
+
body: readFileSync(zipPath),
|
|
267
|
+
redirect: "error",
|
|
268
|
+
signal: AbortSignal.timeout(this.resources.deploymentTimeout)
|
|
269
|
+
});
|
|
270
|
+
if (!response.ok)
|
|
271
|
+
throw new Error();
|
|
272
|
+
let location = response.headers.get("location");
|
|
273
|
+
if (response.status === 202 && !location)
|
|
274
|
+
throw new Error();
|
|
275
|
+
while (location) {
|
|
276
|
+
const url = new URL(location, origin);
|
|
277
|
+
if (url.origin !== origin || url.username || url.password || Date.now() >= deadline)
|
|
278
|
+
throw new Error();
|
|
279
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
280
|
+
response = await fetch(url, {
|
|
281
|
+
headers: { Authorization: `Bearer ${await auth.getArmToken()}` },
|
|
282
|
+
redirect: "error",
|
|
283
|
+
signal: AbortSignal.timeout(Math.max(1, deadline - Date.now()))
|
|
284
|
+
});
|
|
285
|
+
if (!response.ok)
|
|
286
|
+
throw new Error();
|
|
287
|
+
if (response.status === 202)
|
|
288
|
+
continue;
|
|
289
|
+
const status = (await response.json());
|
|
290
|
+
if (status.failed || status.status === 3)
|
|
291
|
+
throw new Error();
|
|
292
|
+
if (status.status === 4 || status.complete === true)
|
|
293
|
+
break;
|
|
294
|
+
if (status.status === undefined)
|
|
295
|
+
throw new Error();
|
|
296
|
+
location = response.headers.get("location") ?? location;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
throw new WebdaError.CodeError("AZURE_FUNCTIONS_PUBLISH_FAILED", "Azure Functions OneDeploy failed; inspect the deployment status in the Azure portal");
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Publish and deploy the application, returning its endpoints.
|
|
305
|
+
* @returns The deploy result
|
|
306
|
+
*/
|
|
307
|
+
async deploy() {
|
|
308
|
+
this.generateTemplate();
|
|
309
|
+
this.writeTemplate();
|
|
310
|
+
const packaged = await this.packageApplication();
|
|
311
|
+
const outputs = await this.sendTemplate();
|
|
312
|
+
const scm = outputs.hostNames?.value?.find(host => host.includes(".scm."));
|
|
313
|
+
if (!scm)
|
|
314
|
+
throw new WebdaError.CodeError("AZURE_FUNCTIONS_SCM", "ARM did not return a Functions SCM hostname");
|
|
315
|
+
await this.publish(packaged.zipPath, scm);
|
|
316
|
+
return (this.result = { fqdn: outputs.fqdn?.value, outputs });
|
|
317
|
+
}
|
|
318
|
+
constructor() {
|
|
319
|
+
super(...arguments);
|
|
320
|
+
__runInitializers(this, _instanceExtraInitializers);
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
(() => {
|
|
324
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
325
|
+
_generate_decorators = [Command("azure template", { description: "Generate the Functions ARM template" })];
|
|
326
|
+
_packageApplication_decorators = [Command("azure package", { description: "Package the application for Azure Functions" })];
|
|
327
|
+
_deploy_decorators = [Command("deploy", { description: "Package and deploy to Azure Functions Flex Consumption" })];
|
|
328
|
+
__esDecorate(_a, null, _generate_decorators, { kind: "method", name: "generate", static: false, private: false, access: { has: obj => "generate" in obj, get: obj => obj.generate }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
329
|
+
__esDecorate(_a, null, _packageApplication_decorators, { kind: "method", name: "packageApplication", static: false, private: false, access: { has: obj => "packageApplication" in obj, get: obj => obj.packageApplication }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
330
|
+
__esDecorate(_a, null, _deploy_decorators, { kind: "method", name: "deploy", static: false, private: false, access: { has: obj => "deploy" in obj, get: obj => obj.deploy }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
331
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
332
|
+
})(),
|
|
333
|
+
/**
|
|
334
|
+
* Parameters
|
|
335
|
+
*/
|
|
336
|
+
_a.Parameters = AzureFunctionsDeployerParameters,
|
|
337
|
+
_a;
|
|
338
|
+
})();
|
|
339
|
+
export { AzureFunctionsDeployer };
|
|
340
|
+
//# sourceMappingURL=functions.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.service.js","sources":["../../src/deployers/functions.service.ts"],"names":[],"mappings":"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"}
|