@azure/functions
- Version 3.5.0
- Published
- 401 kB
- 3 dependencies
- MIT license
Install
npm i @azure/functions
yarn add @azure/functions
pnpm add @azure/functions
Overview
Microsoft Azure Functions NodeJS Framework
Index
Functions
Interfaces
Type Aliases
Functions
function setup
setup: () => void;
Sets the programming model contained in this package to be the one used by the Azure Functions worker
Interfaces
interface BindingDefinition
interface BindingDefinition {}
interface Context
interface Context {}
The context object can be used for writing logs, reading data from bindings, setting outputs and using the context.done callback when your exported function is synchronous. A context object is passed to your function from the Azure Functions runtime on function invocation.
property bindingData
bindingData: ContextBindingData;
Trigger metadata and function invocation data.
property bindingDefinitions
bindingDefinitions: BindingDefinition[];
Bindings your function uses, as defined in function.json.
property bindings
bindings: ContextBindings;
Input and trigger binding data, as defined in function.json. Properties on this object are dynamically generated and named based off of the "name" property in function.json.
property executionContext
executionContext: ExecutionContext;
Function execution metadata.
property invocationId
invocationId: string;
A unique GUID per function invocation.
property log
log: Logger;
Allows you to write streaming function logs. Calling directly allows you to write streaming function logs at the default trace level.
property req
req?: HttpRequest;
HTTP request object. Provided to your function when using HTTP Bindings.
property res
res?: { [key: string]: any;};
HTTP response object. Provided to your function when using HTTP Bindings.
property suppressAsyncDoneError
suppressAsyncDoneError?: boolean;
If this flag is set to true in your function, the error for calling
context.done()
within an async function will not be logged. More info: https://go.microsoft.com/fwlink/?linkid=2097909 false
property traceContext
traceContext: TraceContext;
TraceContext information to enable distributed tracing scenarios.
method done
done: (err?: Error | string | null, result?: any) => void;
A callback function that signals to the runtime that your code has completed. If your function is synchronous, you must call context.done at the end of execution. If your function is asynchronous, you should not use this callback.
Parameter err
A user-defined error to pass back to the runtime. If present, your function execution will fail.
Parameter result
An object containing output binding data.
result
will be passed to JSON.stringify unless it is a string, Buffer, ArrayBufferView, or number.Deprecated
Use of sync functions with
context.done()
is not recommended. Use async/await and pass the response as the return value instead. See the docs here for more information: https://aka.ms/functions-js-async-await
interface ContextBindingData
interface ContextBindingData {}
Context binding data. Provided to your function trigger metadata and function invocation data.
property invocationId
invocationId: string;
A unique GUID per function invocation.
index signature
[name: string]: any;
interface ContextBindings
interface ContextBindings {}
Context bindings object. Provided to your function binding data, as defined in function.json.
index signature
[name: string]: any;
interface Cookie
interface Cookie {}
Http response cookie object to "Set-Cookie"
property domain
domain?: string;
Specifies allowed hosts to receive the cookie
property expires
expires?: Date | number;
NOTE: It is generally recommended that you use maxAge over expires. Sets the cookie to expire at a specific date instead of when the client closes. This can be a Javascript Date or Unix time in milliseconds.
property httpOnly
httpOnly?: boolean;
Sets the cookie to be inaccessible to JavaScript's Document.cookie API
property maxAge
maxAge?: number;
Number of seconds until the cookie expires. A zero or negative number will expire the cookie immediately.
property name
name: string;
Cookie name
property path
path?: string;
Specifies URL path that must exist in the requested URL
property sameSite
sameSite?: 'Strict' | 'Lax' | 'None' | undefined;
Can restrict the cookie to not be sent with cross-site requests
property secure
secure?: boolean;
Sets the cookie to only be sent with an encrypted request
property value
value: string;
Cookie value
interface Exception
interface Exception {}
property message
message?: string | null;
Exception message
property source
source?: string | null;
Exception source
property stackTrace
stackTrace?: string | null;
Exception stackTrace
interface ExecutionContext
interface ExecutionContext {}
property functionDirectory
functionDirectory: string;
The directory your function is in (this is the parent directory of this function's function.json).
property functionName
functionName: string;
The name of the function that is being invoked. The name of your function is always the same as the name of the corresponding function.json's parent directory.
property invocationId
invocationId: string;
A unique GUID per function invocation.
property retryContext
retryContext: RetryContext | null;
The retry context of the current function execution or null if the retry policy is not defined.
interface Form
interface Form extends Iterable<[string, FormPart]> {}
property length
length: number;
The number of parts in this form
method get
get: (name: string) => FormPart | null;
Returns the value of the first name-value pair whose name is
name
. If there are no such pairs,null
is returned.
method getAll
getAll: (name: string) => FormPart[];
Returns the values of all name-value pairs whose name is
name
. If there are no such pairs, an empty array is returned.
method has
has: (name: string) => boolean;
Returns
true
if there is at least one name-value pair whose name isname
.
interface FormPart
interface FormPart {}
property contentType
contentType?: string;
The content type for this part of the form, assumed to be "text/plain" if not specified
property fileName
fileName?: string;
The file name for this part of the form, if specified
property value
value: Buffer;
The value for this part of the form
interface HttpRequest
interface HttpRequest {}
HTTP request object. Provided to your function when using HTTP Bindings.
property body
body?: any;
The HTTP request body. If the media type is 'application/octet-stream' or 'multipart/*', this will be a Buffer If the value is a JSON parse-able string, this will be the parsed object Otherwise, this will be a string
property bufferBody
bufferBody?: Buffer;
The raw Buffer representing the body before any decoding or parsing has been done
property headers
headers: HttpRequestHeaders;
HTTP request headers.
property method
method: HttpMethod | null;
HTTP request method used to invoke this function.
property params
params: HttpRequestParams;
Route parameter keys and values.
property query
query: HttpRequestQuery;
Query string parameter keys and values from the URL.
property rawBody
rawBody?: any;
The HTTP request body as a UTF-8 string. In this case, the name "raw" is used because the string will never be parsed to an object even if it is json. Improvements to the naming are tracked in https://github.com/Azure/azure-functions-nodejs-worker/issues/294
property url
url: string;
Request URL.
property user
user: HttpRequestUser | null;
Object representing logged-in user, either through AppService/Functions authentication, or SWA Authentication null when no such user is logged in.
method get
get: (field: string) => string | undefined;
Get the value of a particular header field
method parseFormBody
parseFormBody: () => Form;
Parses the body and returns an object representing a form
Throws
if the content type is not "multipart/form-data" or "application/x-www-form-urlencoded"
interface HttpRequestHeaders
interface HttpRequestHeaders {}
HTTP request headers.
index signature
[name: string]: string;
interface HttpRequestParams
interface HttpRequestParams {}
Route parameter keys and values.
index signature
[name: string]: string;
interface HttpRequestQuery
interface HttpRequestQuery {}
Query string parameter keys and values from the URL.
index signature
[name: string]: string;
interface HttpRequestUser
interface HttpRequestUser {}
Object representing logged-in user, either through AppService/Functions authentication, or SWA Authentication
property claimsPrincipalData
claimsPrincipalData: { [key: string]: any;};
Extra authentication information, dependent on auth type and auth provider
property id
id: string;
unique user GUID
property identityProvider
identityProvider: string;
provider of authentication service
property type
type: HttpRequestUserType;
Type of authentication, either AppService or StaticWebApps
property username
username: string;
unique username
interface HttpResponseFull
interface HttpResponseFull {}
Http response object and methods. This is the default of the res property in the Context object provided to your function when using HTTP triggers.
property body
body?: any;
HTTP response body.
property cookies
cookies?: Cookie[];
HTTP response cookies.
property enableContentNegotiation
enableContentNegotiation?: boolean;
Enable content negotiation of response body if true If false, treat response body as raw false
property headers
headers?: HttpResponseHeaders;
HTTP response headers.
property status
status: (statusCode: number | string) => HttpResponseFull;
Sets the HTTP response status code
Returns
the updated HttpResponseFull instance
property statusCode
statusCode?: number | string;
HTTP response status code. 200
method end
end: (body?: any) => HttpResponseFull;
Same as send() Automatically sets the content-type then calls context.done()
Returns
updated HttpResponseFull instance
Deprecated
this method calls context.done() which is deprecated, use async/await and pass the response as your function's return value instead. See the docs here for more information: https://aka.ms/functions-js-async-await
method get
get: (field: string) => any;
Has the same functionality as getHeader Get the value of a particular header field
method getHeader
getHeader: (field: string) => any;
Get the value of a particular header field
method header
header: (field: string, val: any) => HttpResponseFull;
Has the same functionality as setHeader. Sets a particular header field to a value
Returns
the updated HttpResponseFull instance
method json
json: (body?: any) => void;
Sets the 'Content-Type' header to 'application/json' then calls send(body)
Deprecated
this method calls context.done() which is deprecated, use async/await and pass the response as your function's return value instead. See the docs here for more information: https://aka.ms/functions-js-async-await
method removeHeader
removeHeader: (field: string) => HttpResponseFull;
Removes a particular header field
Returns
the updated HttpResponseFull instance
method send
send: (body?: any) => HttpResponseFull;
Automatically sets the content-type then calls context.done()
Returns
updated HttpResponseFull instance
Deprecated
this method calls context.done() which is deprecated, use async/await and pass the response as the return value instead. See the docs here for more information: https://aka.ms/functions-js-async-await
method sendStatus
sendStatus: (statusCode: string | number) => HttpResponseFull;
Sets the status code then calls send()
Returns
updated HttpResponseFull instance
Deprecated
this method calls context.done() which is deprecated, use async/await and pass the response as your function's return value instead. See the docs here for more information: https://aka.ms/functions-js-async-await
method set
set: (field: string, val: any) => HttpResponseFull;
Has the same functionality as setHeader. Sets a particular header field to a value
Returns
the updated HttpResponseFull instance
method setHeader
setHeader: (field: string, val: any) => HttpResponseFull;
Sets a particular header field to a value
Returns
the updated HttpResponseFull instance
method type
type: (type: string) => HttpResponseFull;
Set the 'Content-Type' header to a particular value
Returns
the updated HttpResponseFull instance
interface HttpResponseHeaders
interface HttpResponseHeaders {}
HTTP response headers.
index signature
[name: string]: string;
interface HttpResponseSimple
interface HttpResponseSimple {}
Http response object. This is not the default on the Context object, but you may replace context.res with an object of this type when using HTTP triggers.
property body
body?: any;
HTTP response body.
property cookies
cookies?: Cookie[];
HTTP response cookies.
property enableContentNegotiation
enableContentNegotiation?: boolean;
Enable content negotiation of response body if true If false, treat response body as raw false
property headers
headers?: HttpResponseHeaders;
HTTP response headers.
property status
status?: number | string;
HTTP response status code The same as
statusCode
. This property is ignored ifstatusCode
is set 200
property statusCode
statusCode?: number | string;
HTTP response status code. This property takes precedence over the
status
property 200
interface Logger
interface Logger {}
Allows you to write streaming function logs.
method error
error: (...args: any[]) => void;
Writes to error level logging or lower.
method info
info: (...args: any[]) => void;
Writes to info level logging or lower.
method verbose
verbose: (...args: any[]) => void;
Writes to verbose level logging.
method warn
warn: (...args: any[]) => void;
Writes to warning level logging or lower.
call signature
(...args: any[]): void;
Writes streaming function logs at the default trace level.
interface RetryContext
interface RetryContext {}
property exception
exception?: Exception;
Exception that caused the retry
property maxRetryCount
maxRetryCount: number;
Max retry count is the maximum number of times an execution is retried before eventual failure. A value of -1 means to retry indefinitely.
property retryCount
retryCount: number;
Current retry count of the function executions.
interface Timer
interface Timer {}
Timer schedule information. Provided to your function when using a timer binding.
property isPastDue
isPastDue: boolean;
Whether this timer invocation is due to a missed schedule occurrence.
property schedule
schedule: { /** * Whether intervals between invocations should account for DST. */ adjustForDST: boolean;};
property scheduleStatus
scheduleStatus: { /** * The last recorded schedule occurrence. Date ISO string. */ last: string; /** * The expected next schedule occurrence. Date ISO string. */ next: string; /** * The last time this record was updated. This is used to re-calculate `next` with the current schedule after a host restart. Date ISO string. */ lastUpdated: string;};
interface TraceContext
interface TraceContext {}
TraceContext information to enable distributed tracing scenarios.
property attributes
attributes: | { [k: string]: string; } | null | undefined;
Holds additional properties being sent as part of request telemetry.
property traceparent
traceparent: string | null | undefined;
Describes the position of the incoming request in its trace graph in a portable, fixed-length format.
property tracestate
tracestate: string | null | undefined;
Extends traceparent with vendor-specific data.
Type Aliases
type AzureFunction
type AzureFunction = (context: Context, ...args: any[]) => Promise<any> | void;
Interface for your Azure Function code. This function must be exported (via module.exports or exports) and will execute when triggered. It is recommended that you declare this function as async, which implicitly returns a Promise.
Parameter context
Context object passed to your function from the Azure Functions runtime.
Parameter args
Optional array of input and trigger binding data. These binding data are passed to the function in the same order that they are defined in function.json. Valid input types are string, HttpRequest, and Buffer.
Returns
Output bindings (optional). If you are returning a result from a Promise (or an async function), this result will be passed to JSON.stringify unless it is a string, Buffer, ArrayBufferView, or number.
type HttpMethod
type HttpMethod = | 'GET' | 'POST' | 'DELETE' | 'HEAD' | 'PATCH' | 'PUT' | 'OPTIONS' | 'TRACE' | 'CONNECT';
Possible values for an HTTP request method.
type HttpRequestUserType
type HttpRequestUserType = 'AppService' | 'StaticWebApps';
Possible values for an HTTP Request user type
type HttpResponse
type HttpResponse = HttpResponseSimple | HttpResponseFull;
Http response type.
Package Files (4)
Dependencies (3)
Dev Dependencies (37)
- @types/chai
- @types/chai-as-promised
- @types/fs-extra
- @types/long
- @types/minimist
- @types/mocha
- @types/node
- @types/semver
- @types/sinon
- @types/uuid
- @typescript-eslint/eslint-plugin
- @typescript-eslint/parser
- chai
- chai-as-promised
- eslint
- eslint-config-prettier
- eslint-plugin-deprecation
- eslint-plugin-header
- eslint-plugin-prettier
- eslint-webpack-plugin
- fork-ts-checker-webpack-plugin
- fs-extra
- globby
- minimist
- mocha
- mocha-junit-reporter
- mocha-multi-reporters
- prettier
- semver
- sinon
- ts-loader
- ts-node
- typescript
- typescript3
- typescript4
- webpack
- webpack-cli
Peer Dependencies (0)
No peer dependencies.
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/@azure/functions
.
- Markdown[](https://www.jsdocs.io/package/@azure/functions)
- HTML<a href="https://www.jsdocs.io/package/@azure/functions"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 6076 ms. - Missing or incorrect documentation? Open an issue for this package.