Características del tiempo de ejecución 2.0 de JavaScript para CloudFront Functions
El entorno de tiempo de ejecución JavaScript de CloudFront Functions es compatible con la versión 5.1 de ECMAScript (ES)
Temas
Características principales
Se admiten las siguientes características principales de ES.
- Types
-
Se admiten todos los tipos de ES 5.1. Esto incluye valores booleanos, números, cadenas, objetos, matrices, funciones y expresiones regulares.
- Operadores
-
Se admiten todos los operadores de ES 5.1.
Se admite el operador de exponenciación ES 7 (
**). - Instrucciones
-
Se admiten las siguientes instrucciones de ES 5.1:
-
break -
catch -
continue -
do-while -
else -
finally -
for -
for-in -
if -
label -
return -
switch -
throw -
try -
var -
while
Se admiten las siguientes instrucciones de ES 6:
-
const -
let
Se admiten las siguientes instrucciones de ES 8:
async-
await
nota
El tiempo de ejecución 2.0 de JavaScript admite
async,await,constylet.awaitsolo se puede usar dentro de funcionesasync. No se admiten argumentos ni cierres deasync. -
- Literales
-
Se admiten literales de plantilla de ES 6: cadenas de líneas múltiples, interpolación de expresiones y plantillas de anidamiento.
- Funciones
-
Se admiten todas las características de función de ES 5.1.
Se admiten las funciones flecha de ES 6 así como la sintaxis del parámetro rest de ES 6.
- Unicode
-
El texto de origen y los literales de cadena pueden contener caracteres codificados en Unicode. También se admiten secuencias de escape de punto de código Unicode de seis caracteres (por ejemplo,
\uXXXX). - Modo estricto
-
Las funciones operan en modo estricto de forma predeterminada, por lo que no necesita agregar una instrucción
use stricten su código de función. Esto no se puede cambiar.
Objetos primitivos
Se admiten los siguientes objetos primitivos de ES.
- Objeto
-
Se admiten los siguientes métodos de ES 5.1 en objetos:
-
Object.create()(sin lista de propiedades) -
Object.defineProperties() -
Object.defineProperty() -
Object.freeze() -
Object.getOwnPropertyDescriptor() -
Object.getOwnPropertyDescriptors() -
Object.getOwnPropertyNames() -
Object.getPrototypeOf() -
Object.isExtensible() -
Object.isFrozen() -
Object.isSealed() -
Object.keys() -
Object.preventExtensions() -
Object.seal()
Se admiten los siguientes métodos de ES 6 en objetos:
-
Object.assign()
Se admiten los siguientes métodos de ES 8 en objetos:
-
Object.entries() -
Object.values()
Se admiten los siguientes métodos prototipo de ES 5.1 en objetos:
-
Object.prototype.hasOwnProperty() -
Object.prototype.isPrototypeOf() -
Object.prototype.propertyIsEnumerable() -
Object.prototype.toString() -
Object.prototype.valueOf()
Se admiten los siguientes métodos prototipo de ES 6 en objetos:
-
Object.prototype.is() -
Object.prototype.setPrototypeOf()
-
- Cadena
-
Se admiten los siguientes métodos de ES 5.1 en cadenas:
String.fromCharCode()
Se admiten los siguientes métodos de ES 6 en cadenas:
String.fromCodePoint()
Se admiten los siguientes métodos prototipo de ES 5.1 en cadenas:
-
String.prototype.charAt() -
String.prototype.concat() -
String.prototype.indexOf() -
String.prototype.lastIndexOf() -
String.prototype.match() -
String.prototype.replace() -
String.prototype.search() -
String.prototype.slice() -
String.prototype.split() -
String.prototype.substr() -
String.prototype.substring() -
String.prototype.toLowerCase() -
String.prototype.trim() -
String.prototype.toUpperCase()
Se admiten los siguientes métodos prototipo de ES 6 en cadenas:
-
String.prototype.codePointAt() -
String.prototype.endsWith() -
String.prototype.includes() -
String.prototype.repeat() -
String.prototype.startsWith()
Se admiten los siguientes métodos prototipo de ES 8 en cadenas:
-
String.prototype.padStart() -
String.prototype.padEnd()
Se admiten los siguientes métodos prototipo de ES 9 en cadenas:
-
String.prototype.trimStart() -
String.prototype.trimEnd()
Se admiten los siguientes métodos prototipo de ES 12 en cadenas:
String.prototype.replaceAll()nota
String.prototype.replaceAll()es una novedad en el tiempo de ejecución 2.0 de JavaScript.
- Número
-
Se admiten TODOS los números de ES 5.
Se admiten las siguientes propiedades de ES 6 en números:
Number.EPSILON-
Number.MAX_SAFE_INTEGER -
Number.MIN_SAFE_INTEGER -
Number.MAX_VALUE -
Number.MIN_VALUE -
Number.NaN -
Number.NEGATIVE_INFINITY -
Number.POSITIVE_INFINITY
Se admiten los siguientes métodos de ES 6 en números:
-
Number.isFinite() -
Number.isInteger() -
Number.isNaN() -
Number.isSafeInteger() -
Number.parseInt() -
Number.parseFloat()
Se admiten los siguientes métodos prototipo de ES 5.1 en números:
-
Number.prototype.toExponential() -
Number.prototype.toFixed() -
Number.prototype.toPrecision()
Se admiten los separadores numéricos ES 12.
nota
Los separadores numéricos ES 12 son nuevos en el tiempo de ejecución 2.0 de JavaScript.
Objetos integrados
Se admiten los siguientes objetos integrados de ES.
- Math
-
Se admiten todos los métodos matemáticos de ES 5.1.
nota
En el entorno de tiempo de ejecución de CloudFront Functions, la implementación de
Math.random()utilizaarc4randomde OpenBSD predefinido con la marca de tiempo de cuándo se ejecuta la función.Se admiten las siguientes propiedades matemáticas de ES 6:
-
Math.E -
Math.LN10 -
Math.LN2 -
Math.LOG10E -
Math.LOG2E -
Math.PI -
Math.SQRT1_2 -
Math.SQRT2
Se admiten los siguientes métodos matemáticos de ES 6:
-
Math.abs() -
Math.acos() -
Math.acosh() -
Math.asin() -
Math.asinh() -
Math.atan() -
Math.atan2() -
Math.atanh() -
Math.cbrt() -
Math.ceil() -
Math.clz32() -
Math.cos() -
Math.cosh() -
Math.exp() -
Math.expm1() -
Math.floor() -
Math.fround() -
Math.hypot() -
Math.imul() -
Math.log() -
Math.log1p() -
Math.log2() -
Math.log10() -
Math.max() -
Math.min() -
Math.pow() -
Math.random() -
Math.round() -
Math.sign() -
Math.sinh() -
Math.sin() -
Math.sqrt() -
Math.tan() -
Math.tanh() -
Math.trunc()
-
- Fecha
-
Se admiten todas las características
Datede ES 5.1.nota
Por razones de seguridad,
Datesiempre devuelve el mismo valor (la hora de inicio de la función) durante la vida útil de la ejecución de una sola función. Para obtener más información, consulte Características restringidas. - Función
-
Se admiten los siguientes métodos prototipo de ES 5.1:
Function.prototype.apply()-
Function.prototype.bind() -
Function.prototype.call()
Los constructores de funciones no son compatibles.
- Expresiones regulares
-
Se admiten todas las características de expresión regular de ES 5.1. El lenguaje de expresión regular es compatible con Perl.
Se admiten las siguientes características de acceso prototipo de ES 5.1:
-
RegExp.prototype.global -
RegExp.prototype.ignoreCase -
RegExp.protoype.multiline -
RegExp.protoype.source -
RegExp.prototype.sticky -
RegExp.prototype.flagsnota
RegExp.prototype.stickyyRegExp.prototype.flagsson novedades en el tiempo de ejecución 2.0 de JavaScript.
Se admiten los siguientes métodos prototipo de ES 5.1:
-
RegExp.prototype.exec() -
RegExp.prototype.test() -
RegExp.prototype.toString() -
RegExp.prototype[@@replace]() -
RegExp.prototype[@@split]()nota
RegExp.prototype[@@split]()es una novedad en el tiempo de ejecución 2.0 de JavaScript.
Se admiten las siguientes propiedades de instancia de ES 5.1:
-
lastIndex
Se admiten grupos de captura con nombre de ES 9.
-
- JSON
-
Se admiten los siguientes métodos matemáticos de ES 5.1:
-
JSON.parse() -
JSON.stringify()
-
- Matriz
-
Se admiten los siguientes métodos de ES 5.1 en matrices:
-
Array.isArray()
Se admiten los siguientes métodos de ES 6 en matrices:
-
Array.of()
Se admiten los siguientes métodos prototipo de ES 5.1:
-
Array.prototype.concat() -
Array.prototype.every() -
Array.prototype.filter() -
Array.prototype.forEach() -
Array.prototype.indexOf() -
Array.prototype.join() -
Array.prototype.lastIndexOf() -
Array.prototype.map() -
Array.prototype.pop() -
Array.prototype.push() -
Array.prototype.reduce() -
Array.prototype.reduceRight() -
Array.prototype.reverse() -
Array.prototype.shift() -
Array.prototype.slice() -
Array.prototype.some() -
Array.prototype.sort() -
Array.prototype.splice() -
Array.prototype.unshift()
Se admiten los siguientes métodos prototipo de ES 6
-
Array.prototype.copyWithin() -
Array.prototype.fill() -
Array.prototype.find() -
Array.prototype.findIndex()
Se admiten los siguientes métodos prototipo de ES 7:
Array.prototype.includes()
-
- Matrices con tipo
-
Se admiten los siguientes constructores de matrices con tipo de ES 6:
-
Float32Array -
Float64Array -
Int8Array -
Int16Array -
Int32Array -
Uint8Array -
Uint8ClampedArray -
Uint16Array -
Uint32Array
Se admiten los siguientes métodos matemáticos de ES 6:
-
TypedArray.from() -
TypedArray.of()nota
TypedArray.from()yTypedArray.of()son novedades en el tiempo de ejecución 2.0 de JavaScript.
Se admiten los siguientes métodos prototipo de ES 6:
-
TypedArray.prototype.copyWithin() -
TypedArray.prototype.every() -
TypedArray.prototype.fill() -
TypedArray.prototype.filter() -
TypedArray.prototype.find() -
TypedArray.prototype.findIndex() -
TypedArray.prototype.forEach() -
TypedArray.prototype.includes() -
TypedArray.prototype.indexOf() -
TypedArray.prototype.join() -
TypedArray.prototype.lastIndexOf() -
TypedArray.prototype.map() -
TypedArray.prototype.reduce() -
TypedArray.prototype.reduceRight() -
TypedArray.prototype.reverse() -
TypedArray.prototype.some() -
TypedArray.prototype.set() -
TypedArray.prototype.slice() -
TypedArray.prototype.sort() -
TypedArray.prototype.subarray() -
TypedArray.prototype.toString()nota
TypedArray.prototype.every(),TypedArray.prototype.fill(),TypedArray.prototype.filter(),TypedArray.prototype.find(),TypedArray.prototype.findIndex(),TypedArray.prototype.forEach(),TypedArray.prototype.includes(),TypedArray.prototype.indexOf(),TypedArray.prototype.join(),TypedArray.prototype.lastIndexOf(),TypedArray.prototype.map(),TypedArray.prototype.reduce(),TypedArray.prototype.reduceRight(),TypedArray.prototype.reverse()yTypedArray.prototype.some()son novedades en el tiempo de ejecución 2.0 de JavaScript.
-
- ArrayBuffer
-
Se admiten los siguientes métodos de ES 6 en ArrayBuffer:
-
isView()
Se admiten los siguientes métodos prototipo de ES 6 en ArrayBuffer:
-
ArrayBuffer.prototype.slice()
-
- Promesa
-
Se admiten los siguientes métodos de ES 6 en promesas:
-
Promise.all() -
Promise.allSettled() -
Promise.any() -
Promise.reject() -
Promise.resolve() -
Promise.race()nota
Promise.all(),Promise.allSettled(),Promise.any()yPromise.race()son novedades en el tiempo de ejecución 2.0 de JavaScript.
Se admiten los siguientes métodos prototipos de ES 6 en promesas:
-
Promise.prototype.catch() -
Promise.prototype.finally() -
Promise.prototype.then()
-
- DataView
-
Se admiten los siguientes métodos prototipo de ES 6:
-
DataView.prototype.getFloat32() -
DataView.prototype.getFloat64() -
DataView.prototype.getInt16() -
DataView.prototype.getInt32() -
DataView.prototype.getInt8() -
DataView.prototype.getUint16() -
DataView.prototype.getUint32() -
DataView.prototype.getUint8() -
DataView.prototype.setFloat32() -
DataView.prototype.setFloat64() -
DataView.prototype.setInt16() -
DataView.prototype.setInt32() -
DataView.prototype.setInt8() -
DataView.prototype.setUint16() -
DataView.prototype.setUint32() -
DataView.prototype.setUint8()nota
Todos los métodos prototipo de DataView ES 6 son nuevos en el tiempo de ejecución 2.0 de JavaScript.
-
- Símbolo
-
Se admiten los siguientes métodos matemáticos de ES 6:
-
Symbol.for() -
Symbol.keyfor()nota
Todos los métodos de ES 6 de símbolos son nuevos en el tiempo de ejecución 2.0 de JavaScript.
-
- Descodificador de texto
-
Se admiten los siguientes métodos prototipo:
-
TextDecoder.prototype.decode()
Se admiten las siguientes propiedades de acceso prototipo:
-
TextDecoder.prototype.encoding -
TextDecoder.prototype.fatal -
TextDecoder.prototype.ignoreBOM
-
- Codificador de texto
-
Se admiten los siguientes métodos prototipo:
-
TextEncoder.prototype.encode() -
TextEncoder.prototype.encodeInto()
-
Tipos de error
Se admiten los siguientes objetos de error:
-
Error -
EvalError -
InternalError -
RangeError -
ReferenceError -
SyntaxError -
TypeError -
URIError
Globals
Se admite el objeto globalThis.
Se admiten las siguientes características globales de ES 5.1:
-
decodeURI() -
decodeURIComponent() -
encodeURI() -
encodeURIComponent() -
isFinite() -
isNaN() -
parseFloat() -
parseInt()
Se admiten las siguientes características globales de ES 6:
atob()-
btoa()nota
atob()ybtoa()son novedades en el tiempo de ejecución 2.0 de JavaScript.
Se admiten las siguientes constantes globales:
-
NaN -
Infinity -
undefined -
arguments
Módulos integrados
Se admiten los siguientes módulos integrados:
Búfer
El módulo proporciona los siguientes métodos:
-
Buffer.alloc(size[, fill[, encoding]])Asignación de un
Buffer.-
size: tamaño del búfer. Introduzca un número entero. -
fill: opcional. Introduzca una cadena,Buffer, Uint8Array o entero. El valor predeterminado es0. -
encoding: opcional. Sifilles una cadena, introduzca una de las siguientes opciones:utf8,hex,base64obase64url. El valor predeterminado esutf8.
-
-
Buffer.allocUnsafe(size)Asigne un valor no inicializado
Buffer.-
size: introduzca un número entero.
-
-
Buffer.byteLength(value[, encoding])Devuelve la longitud de un valor, en bytes.
-
value: una cadena,Buffer, TypedArray, Dataview o Arraybuffer. -
encoding: opcional. Sivaluees una cadena, introduzca una de las siguientes opciones:utf8,hex,base64obase64url. El valor predeterminado esutf8.
-
-
Buffer.compare(buffer1, buffer2)Compare dos
Bufferpara ayudar a ordenar las matrices. Devuelve0si son iguales,-1sibuffer1aparece primero o1sibuffer2aparece primero.-
buffer1: introduzca unBuffer. -
buffer2: introduzca unBufferdiferente.
-
-
Buffer.concat(list[, totalLength])Concatenar varios
Buffer. Devuelve0si no hay ninguno. Devuelve hastatotalLength.-
list: introduzca una lista deBuffer. Tenga en cuenta que esto se truncará atotalLength. -
totalLength: opcional. Introduzca un número entero sin signo. Utilice la suma de las instancias deBufferde la lista si está en blanco.
-
-
Buffer.from(array)Cree un
Buffera partir de una matriz.-
array: introduzca una matriz de bytes de0a255.
-
-
Buffer.from(arrayBuffer, byteOffset[, length]))Cree una vista desde
arrayBuffer, empezando por el desfasebyteOffsetcon la longitudlength.-
arrayBuffer: introduzca una matriz deBuffer. -
byteOffset: introduzca un número entero. -
length: opcional. Introduzca un número entero.
-
-
Buffer.from(buffer)Cree una copia del
Buffer.-
buffer: introduzca unBuffer.
-
-
Buffer.from(object[, offsetOrEncoding[, length]])Cree un
Buffera partir de un objeto. DevuelveBuffer.from(object.valueOf(), offsetOrEncoding, length)sivalueOf()no es igual al objeto.-
object: introduzca un objeto. -
offsetOrEncoding: opcional. Introduzca un número entero o una cadena de codificación. -
length: opcional. Introduzca un número entero.
-
-
Buffer.from(string[, encoding])Cree un
Buffera partir de una cadena.-
string: introduzca una cadena. -
encoding: opcional. Introduzca una de las siguientes opciones:utf8,hex,base64obase64url. El valor predeterminado esutf8.
-
-
Buffer.isBuffer(object)Compruebe si
objectes un búfer. Devuelvetrueofalse.-
object: introduzca un objeto.
-
-
Buffer.isEncoding(encoding)Compruebe si
encodinges compatible. Devuelvetrueofalse.-
encoding: opcional. Introduzca una de las siguientes opciones:utf8,hex,base64obase64url. El valor predeterminado esutf8.
-
El módulo proporciona los siguientes métodos de prototipo de búfer.
-
Buffer.prototype.compare(target[, targetStart[, targetEnd[, sourceStart[, sourceEnd]]]])Compare
Buffercon el objetivo. Devuelve0si son iguales,1sibufferaparece primero o-1sitargetaparece primero.-
target: introduzca unBuffer. -
targetStart: opcional. Introduzca un número entero. El valor predeterminado es 0. -
targetEnd: opcional. Introduzca un número entero. El valor predeterminado es la longitud deltarget. -
sourceStart: opcional. Introduzca un número entero. El valor predeterminado es 0. -
sourceEnd: opcional. Introduzca un número entero. El valor predeterminado es la longitud delBuffer.
-
-
Buffer.prototype.copy(target[, targetStart[, sourceStart[, sourceEnd]]])Copie el búfer a
target.-
target: introduzca unBuffero unaUint8Array. -
targetStart: opcional. Introduzca un número entero. El valor predeterminado es 0. -
sourceStart: opcional. Introduzca un número entero. El valor predeterminado es 0. -
sourceEnd: opcional. Introduzca un número entero. El valor predeterminado es la longitud delBuffer.
-
-
Buffer.prototype.equals(otherBuffer)Compare
BufferconotherBuffer. Devuelvetrueofalse.-
otherBuffer: introduzca una cadena.
-
-
Buffer.prototype.fill(value[, offset[, end][, encoding])Rellene
Bufferconvalue.-
value: introduzca una cadena, unBuffero un número entero. -
offset: opcional. Introduzca un número entero. -
end: opcional. Introduzca un número entero. -
encoding: opcional. Introduzca una de las siguientes opciones:utf8,hex,base64obase64url. El valor predeterminado esutf8.
-
-
Buffer.prototype.includes(value[, byteOffset][, encoding])Busque
valueenBuffer. Devuelvetrueofalse.-
value: introduzca una cadena,Buffer,Uint8Arrayo un número entero. -
byteOffset: opcional. Introduzca un número entero. -
encoding: opcional. Introduzca una de las siguientes opciones:utf8,hex,base64obase64url. El valor predeterminado esutf8.
-
-
Buffer.prototype.indexOf(value[, byteOffset][, encoding])Busque el primer
valueen elBuffer. Devuelveindexsi se encuentra; devuelve-1si no se encuentra.-
value: introduzca una cadena,Buffer, Unit8Array o un número entero comprendido entre 0 y 255. -
byteOffset: opcional. Introduzca un número entero. -
encoding: opcional. Introduzca una de las siguientes opciones sivaluees una cadena:utf8,hex,base64,base64url. El valor predeterminado esutf8.
-
-
Buffer.prototype.lastIndexOf(value[, byteOffset][, encoding])Busque el último
valueen elBuffer. Devuelveindexsi se encuentra; devuelve-1si no se encuentra.-
value: introduzca una cadena,Buffer, Unit8Array o un número entero comprendido entre 0 y 255. -
byteOffset: opcional. Introduzca un número entero. -
encoding: opcional. Introduzca una de las siguientes opciones sivaluees una cadena:utf8,hex,base64,base64url. El valor predeterminado esutf8.
-
-
Buffer.prototype.readInt8(offset)Lea
Int8enoffsetdesdeBuffer.-
offset: introduzca un número entero.
-
-
Buffer.prototype.readIntBE(offset, byteLength)Lea el
Intcomo big-endian enoffsetdesdeBuffer.-
offset: introduzca un número entero. -
byteLength: opcional. Introduzca un número entero comprendido entre1y6.
-
-
Buffer.prototype.readInt16BE(offset)Lea el
Int16como big-endian enoffsetdesdeBuffer.-
offset: introduzca un número entero.
-
-
Buffer.prototype.readInt32BE(offset)Lea el
Int32como big-endian enoffsetdesdeBuffer.-
offset: introduzca un número entero.
-
-
Buffer.prototype.readIntLE(offset, byteLength)Lea el
Intcomo little-endian enoffsetdesdeBuffer.-
offset: introduzca un número entero. -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.readInt16LE(offset)Lea el
Int16como little-endian enoffsetdesdeBuffer.-
offset: introduzca un número entero.
-
-
Buffer.prototype.readInt32LE(offset)Lea el
Int32como little-endian enoffsetdesdeBuffer.-
offset: introduzca un número entero.
-
-
Buffer.prototype.readUInt8(offset)Lea
UInt8enoffsetdesdeBuffer.-
offset: introduzca un número entero.
-
-
Buffer.prototype.readUIntBE(offset, byteLength)Lea el
UIntcomo big-endian enoffsetdesdeBuffer.-
offset: introduzca un número entero. -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.readUInt16BE(offset)Lea el
UInt16como big-endian enoffsetdesdeBuffer. -
-
offset: introduzca un número entero.
-
-
Buffer.prototype.readUInt32BE(offset)Lea el
UInt32como big-endian enoffsetdesdeBuffer.-
offset: introduzca un número entero.
-
-
Buffer.prototype.readUIntLE(offset, byteLength)Lea el
UIntcomo little-endian enoffsetdesdeBuffer.-
offset: introduzca un número entero. -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.readUInt16LE(offset)Lea el
UInt16como little-endian enoffsetdesdeBuffer.-
offset: introduzca un número entero.
-
-
Buffer.prototype.readUInt32LE(offset)Lea el
UInt32como little-endian enoffsetdesdeBuffer.-
offset: introduzca un número entero.
-
-
Buffer.prototype.readDoubleBE([offset])Lea un doble de 64 bits como big-endian en
offsetdesdeBuffer.-
offset: opcional. Introduzca un número entero.
-
-
Buffer.prototype.readDoubleLE([offset])Lea un doble de 64 bits como little-endian en
offsetdesdeBuffer.-
offset: opcional. Introduzca un número entero.
-
-
Buffer.prototype.readFloatBE([offset])Lea un flotante de 32 bits como big-endian en
offsetdesdeBuffer.-
offset: opcional. Introduzca un número entero.
-
-
Buffer.prototype.readFloatLE([offset])Lea un flotante de 32 bits como little-endian en
offsetdesdeBuffer.-
offset: opcional. Introduzca un número entero.
-
-
Buffer.prototype.subarray([start[, end]])Devuelve una copia de
Bufferdesplazada y recortada con un nuevostartyend.-
start: opcional. Introduzca un número entero. El valor predeterminado es 0. -
end: opcional. Introduzca un número entero. El valor predeterminado es la longitud del búfer.
-
-
Buffer.prototype.swap16()Cambie el orden de los bytes de la matriz del
Buffer, tratándolo como una matriz de números de 16 bits. La longitud deBufferdebe ser divisible entre 2 o recibirá un error. -
Buffer.prototype.swap32()Cambie el orden de los bytes de la matriz del
Buffer, tratándolo como una matriz de números de 32 bits. La longitud deBufferdebe ser divisible entre 4 o recibirá un error. -
Buffer.prototype.swap64()Cambie el orden de los bytes de la matriz del
Buffer, tratándolo como una matriz de números de 64 bits. La longitud deBufferdebe ser divisible entre 8 o recibirá un error. -
Buffer.prototype.toJSON()Devuelve
Buffercomo JSON. -
Buffer.prototype.toString([encoding[, start[, end]]])Convierte
Buffer, destartaend, en una cadena codificada.-
encoding: opcional. Introduzca una de las siguientes opciones:utf8,hex,base64obase64url. El valor predeterminado esutf8. -
start: opcional. Introduzca un número entero. El valor predeterminado es 0. -
end: opcional. Introduzca un número entero. El valor predeterminado es la longitud del búfer.
-
-
Buffer.prototype.write(string[, offset[, length]][, encoding])Escribe codificada la
stringen elBuffersi hay espacio, o unastringtruncada si no hay suficiente espacio.-
string: introduzca una cadena. -
offset: opcional. Introduzca un número entero. El valor predeterminado es 0. -
length: opcional. Introduzca un número entero. El valor predeterminado es la longitud de la cadena. -
encoding: opcional. Si lo desea, introduzca una de las siguientes opciones:utf8,hex,base64obase64url. El valor predeterminado esutf8.
-
-
Buffer.prototype.writeInt8(value, offset, byteLength)Escriba el
Int8valuede labyteLengthenoffsetenBuffer.-
value: introduzca un número entero. -
offset: introduzca un número entero -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeIntBE(value, offset, byteLength)Escriba un
valueenoffsetpara elBuffer, usando big-endian.-
value: introduzca un número entero. -
offset: introduzca un número entero -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeInt16BE(value, offset, byteLength)Escriba un
valueenoffsetpara elBuffer, usando big-endian.-
value: introduzca un número entero. -
offset: introduzca un número entero -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeInt32BE(value, offset, byteLength)Escriba un
valueenoffsetpara elBuffer, usando big-endian.-
value: introduzca un número entero. -
offset: introduzca un número entero -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeIntLE(offset, byteLength)Escriba un
valueenoffsetpara elBuffer, usando little-endian.-
offset: introduzca un número entero. -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeInt16LE(offset, byteLength)Escriba un
valueenoffsetpara elBuffer, usando little-endian.-
offset: introduzca un número entero. -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeInt32LE(offset, byteLength)Escriba un
valueenoffsetpara elBuffer, usando little-endian.-
offset: introduzca un número entero. -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeUInt8(value, offset, byteLength)Escriba el
UInt8valuede labyteLengthenoffsetenBuffer.-
value: introduzca un número entero. -
offset: introduzca un número entero -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeUIntBE(value, offset, byteLength)Escriba un
valueenoffsetpara elBuffer, usando big-endian.-
value: introduzca un número entero. -
offset: introduzca un número entero -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeUInt16BE(value, offset, byteLength)Escriba un
valueenoffsetpara elBuffer, usando big-endian.-
value: introduzca un número entero. -
offset: introduzca un número entero -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeUInt32BE(value, offset, byteLength)Escriba un
valueenoffsetpara elBuffer, usando big-endian.-
value: introduzca un número entero. -
offset: introduzca un número entero -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeUIntLE(value, offset, byteLength)Escriba un
valueenoffsetpara elBuffer, usando little-endian.-
value: introduzca un número entero. -
offset: introduzca un número entero -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeUInt16LE(value, offset, byteLength)Escriba un
valueenoffsetpara elBuffer, usando little-endian.-
value: introduzca un número entero. -
offset: introduzca un número entero -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeUInt32LE(value, offset, byteLength)Escriba un
valueenoffsetpara elBuffer, usando little-endian.-
value: introduzca un número entero. -
offset: introduzca un número entero -
byteLength: introduzca un número entero entre1y6.
-
-
Buffer.prototype.writeDoubleBE(value, [offset])Escriba un
valueenoffsetpara elBuffer, usando big-endian.-
value: introduzca un número entero. -
offset: opcional. Introduzca un número entero. El valor predeterminado es 0.
-
-
Buffer.prototype.writeDoubleLE(value, [offset])Escriba un
valueenoffsetpara elBuffer, usando little-endian.-
value: introduzca un número entero. -
offset: opcional. Introduzca un número entero. El valor predeterminado es 0.
-
-
Buffer.prototype.writeFloatBE(value, [offset])Escriba un
valueenoffsetpara elBuffer, usando big-endian.-
value: introduzca un número entero. -
offset: opcional. Introduzca un número entero. El valor predeterminado es 0.
-
-
Buffer.prototype.writeFloatLE(value, [offset])Escriba un
valueenoffsetpara elBuffer, usando little-endian.-
value: introduzca un número entero. -
offset: opcional. Introduzca un número entero. El valor predeterminado es 0.
-
Se admiten los siguientes métodos de instancia:
-
buffer[index]Obtenga y establezca el octeto (byte) en
indexenBuffer.-
Obtenga un número de
0a255. O establezca un número de0a255.
-
Se admiten las siguientes propiedades de instancia:
-
bufferObtenga el objeto
ArrayBufferpara el búfer. -
byteOffsetObtenga el
byteOffsetdel objetoArraybufferdel búfer. -
lengthObtenga el recuento de bytes del búfer.
nota
Todos los métodos del módulo del búfer son nuevos en el tiempo de ejecución 2.0 de JavaScript.
Cadena de consulta
nota
El objeto de evento de CloudFront Functions analiza automáticamente las cadenas de consulta de URL. Eso significa que en la mayoría de los casos no necesita usar este módulo.
El módulo de cadena de consulta (querystring) proporciona métodos para analizar y dar formato a las cadenas de consulta de URL. Puede cargar el módulo mediante require('querystring'). El módulo proporciona los siguientes métodos.
querystring.escape(string)-
La URL codifica la
stringdada y devuelve una cadena de consulta escapada. El método es utilizado porquerystring.stringify()y no debe utilizarse directamente. querystring.parse(string[, separator[, equal[, options]]])-
Analiza una cadena de consulta (
string) y devuelve un objeto.El parámetro
separatores una subcadena para delimitar pares de claves y valores en la cadena de consulta. De forma predeterminada, es&.El parámetro
equales una subcadena para delimitar claves y valores en la cadena de consulta. De forma predeterminada, es=.El parámetro
optionses un objeto con las siguientes claves:decodeURIComponent function-
Una función para decodificar caracteres codificados por porcentaje en la cadena de consulta. De forma predeterminada, es
querystring.unescape(). maxKeys number-
El número máximo de claves que se analizan. De forma predeterminada, es
1000. Utilice un valor de0para eliminar las limitaciones del recuento de claves.
De forma predeterminada, se supone que los caracteres codificados con porcentaje dentro de la cadena de consulta utilizan la codificación UTF-8. Las secuencias UTF-8 no válidas se reemplazan por el carácter de reemplazo
U+FFFD.Por ejemplo, para la siguiente cadena de consulta:
'name=value&abc=xyz&abc=123'El valor de retorno de
querystring.parse()es:{ name: 'value', abc: ['xyz', '123'] }querystring.decode()es un alias dequerystring.parse(). querystring.stringify(object[, separator[, equal[, options]]])-
Serializa un
objecty devuelve una cadena de consulta.El parámetro
separatores una subcadena para delimitar pares de claves y valores en la cadena de consulta. De forma predeterminada, es&.El parámetro
equales una subcadena para delimitar claves y valores en la cadena de consulta. De forma predeterminada, es=.El parámetro
optionses un objeto con las siguientes claves:encodeURIComponent function-
La función que se va a utilizar para convertir caracteres no seguros de URL a codificación porcentual en la cadena de consulta. De forma predeterminada, es
querystring.escape().
De forma predeterminada, los caracteres que requieren codificación porcentual dentro de la cadena de consulta se codifican como UTF-8. Para utilizar una codificación diferente, especifique la opción
encodeURIComponent.Por ejemplo, el siguiente código:
querystring.stringify({ name: 'value', abc: ['xyz', '123'], anotherName: '' });El valor de retorno es:
'name=value&abc=xyz&abc=123&anotherName='querystring.encode()es un alias dequerystring.stringify(). querystring.unescape(string)-
Decodifica caracteres codificados con porcentaje de URL en la
stringdada y devuelve una cadena de consulta sin escapar. Este método es utilizado porquerystring.parse()y no debe utilizarse directamente.
Cripto
El módulo criptográfico (crypto) proporciona ayudantes de código de autenticación de mensajes basado en hash (HMAC) y hashing estándar. Puede cargar el módulo mediante require('crypto').
Métodos de hashing
crypto.createHash(algorithm)-
Crea y devuelve un objeto hash que puede utilizar para generar resúmenes hash mediante el algoritmo dado:
md5,sha1osha256. hash.update(data)-
Actualiza el contenido hash con los
datadados. hash.digest([encoding])-
Calcula el resumen de todos los datos pasados con
hash.update(). La codificación puede serhex,base64obase64url.
Métodos HMAC
crypto.createHmac(algorithm, secret key)-
Crea y devuelve un objeto HMAC que utiliza el
algorithmysecret keydados. El algoritmo puede sermd5,sha1osha256. hmac.update(data)-
Actualiza el contenido de HMAC con los
datadados. hmac.digest([encoding])-
Calcula el resumen de todos los datos pasados con
hmac.update(). La codificación puede serhex,base64obase64url.
Características restringidas
Las siguientes características de lenguaje JavaScript no se admiten o están restringidas debido a cuestiones de seguridad.
- Evaluación dinámica de código
-
No se admite la evaluación dinámica de código. Si se intenta, los constructores
eval()yFunctionarrojan un error. Por ejemplo,const sum = new Function('a', 'b', 'return a + b')arroja un error. - Temporizadores
-
No se admiten las funciones
setTimeout(),setImmediate()yclearTimeout(). No hay nada para posponer o producir dentro de una ejecución de función. La función debe ejecutarse de manera sincrónica hasta finalizar. - Fecha y marcas temporales
-
Por razones de seguridad, no hay acceso a temporizadores de alta resolución. Todos los métodos
Datepara consultar la hora actual siempre devuelven el mismo valor durante la vida útil de una sola función ejecutada. La marca temporal devuelta es la hora en que la función comenzó a ejecutarse. Por eso, no puede medir el tiempo transcurrido en la función. - Acceso al sistema de archivos
-
No hay acceso al sistema de archivos. Por ejemplo, no hay ningún módulo
fspara el acceso al sistema de archivos como lo hay en Node.js. - Acceso al proceso
-
No hay acceso al proceso. Por ejemplo, no hay ningún objeto global
processpara procesar el acceso a la información como lo hay en Node.js. - Variables de entorno
-
No hay acceso a las variables de entorno. En su lugar, puede utilizar CloudFront KeyValueStore para crear un almacén de datos centralizado de pares clave-valor para las CloudFront Functions. CloudFront KeyValueStore habilita las actualizaciones dinámicas de los datos de configuración sin necesidad de implementar cambios en el código. Para obtener más información, consulte Amazon CloudFront KeyValueStore.
- Acceso a la red
-
No se admiten las llamadas de red. Por ejemplo, no se admite XHR, HTTP (S) ni socket.