Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
JavaScript Runtime 1.0-Funktionen für CloudFront Funktionen
Die JavaScript Runtime-Umgebung von CloudFront Functions ist kompatibel mit ECMAScript(ES) Version 5.1
In den folgenden Themen werden alle unterstützten Sprachfunktionen aufgeführt.
Themen
Kernfunktionen
Die folgenden Kern-Features von ES werden unterstützt.
- Typen
-
Alle ES 5.1-Typen werden unterstützt. Dies umfasst boolesche Werte, Zahlen, Zeichenfolgen, Objekte, Arrays, Funktionen, Funktionskonstruktoren und reguläre Ausdrücke.
- Operatoren
-
Alle ES 5.1-Operatoren werden unterstützt.
Der Potenzierungsoperator (
**
) wird unterstützt. - Anweisungen
-
Anmerkung
const
- undlet
-Anweisungen werden nicht unterstützt.Die folgenden ES 5.1-Anweisungen werden unterstützt:
-
break
-
catch
-
continue
-
do-while
-
else
-
finally
-
for
-
for-in
-
if
-
return
-
switch
-
throw
-
try
-
var
-
while
-
Bezeichnete Anweisungen
-
- Literale
-
ES 6-Vorlagenliterale werden unterstützt: mehrzeilige Zeichenfolgen, Interpolation von Ausdrücken und Verschachtelungsvorlagen.
- Funktionen
-
Alle Features von ES 5.1 werden unterstützt.
ES 6-Pfeilfunktionen werden unterstützt, und die ES 6 Rest-Parametersyntax wird unterstützt.
- Unicode
-
Quelltext und Zeichenfolgenliterale können Unicode-codierte Zeichen enthalten. Unicode-Code-Punkt-Escape-Sequenzen von sechs Zeichen (z. B.
\uXXXX
) werden ebenfalls unterstützt. - Strikter Modus
-
Funktionen arbeiten standardmäßig im strikten Modus, sodass Sie Ihrem Funktionscode keine
use strict
-Anweisung hinzufügen müssen. Dies können nicht geändert werden.
Primitive Objekte
Die folgenden primitiven Objekte von ES werden unterstützt.
- Objekt
-
Die folgenden ES 5.1-Methoden für Objekte werden unterstützt:
-
create
(ohne Eigenschaftenliste) -
defineProperties
-
defineProperty
-
freeze
-
getOwnPropertyDescriptor
-
getOwnPropertyNames
-
getPrototypeOf
-
hasOwnProperty
-
isExtensible
-
isFrozen
-
prototype.isPrototypeOf
-
isSealed
-
keys
-
preventExtensions
-
prototype.propertyIsEnumerable
-
seal
-
prototype.toString
-
prototype.valueOf
Die folgenden ES 6-Methoden für Objekte werden unterstützt:
-
assign
-
is
-
prototype.setPrototypeOf
Die folgenden ES 8-Methoden für Objekte werden unterstützt:
-
entries
-
values
-
- Zeichenfolge
-
Die folgenden ES 5.1-Methoden für Zeichenfolgen werden unterstützt:
-
fromCharCode
-
prototype.charAt
-
prototype.concat
-
prototype.indexOf
-
prototype.lastIndexOf
-
prototype.match
-
prototype.replace
-
prototype.search
-
prototype.slice
-
prototype.split
-
prototype.substr
-
prototype.substring
-
prototype.toLowerCase
-
prototype.trim
-
prototype.toUpperCase
Die folgenden ES 6-Methoden für Zeichenfolgen werden unterstützt:
-
fromCodePoint
-
prototype.codePointAt
-
prototype.endsWith
-
prototype.includes
-
prototype.repeat
-
prototype.startsWith
Die folgenden ES 8-Methoden für Zeichenfolgen werden unterstützt:
-
prototype.padStart
-
prototype.padEnd
Die folgenden ES 9-Methoden für Zeichenfolgen werden unterstützt:
-
prototype.trimStart
-
prototype.trimEnd
Die folgenden nicht standardmäßigen Methoden für Zeichenfolgen werden unterstützt:
-
prototype.bytesFrom(array | string, encoding)
Erstellt eine Bytezeichenfolge aus einem Array von Oktetten oder einer codierten Zeichenfolge. Die Optionen für die Zeichenfolgencodierung sind
hex
,base64
undbase64url
. -
prototype.fromBytes(start[, end])
Erstellt eine Unicode-Zeichenfolge aus einer Bytezeichenfolge, in der jedes Byte durch den entsprechenden Unicode-Codepunkt ersetzt wird.
-
prototype.fromUTF8(start[, end])
Erzeugt eine Unicode-Zeichenfolge aus einer UTF -8-Byte-Zeichenfolge. Wenn die Codierung falsch ist, wird
null
zurückgegeben. -
prototype.toBytes(start[, end])
Erstellt eine Bytezeichenfolge aus einer Unicode-Zeichenfolge. Alle Zeichen müssen im Bereich von [0,255] liegen. Wenn nicht, wird
null
zurückgegeben. -
prototype.toUTF8(start[, end])
Erzeugt eine mit UTF -8 Byte kodierte Zeichenfolge aus einer Unicode-Zeichenfolge.
-
- Nummer
-
Alle ES 5.1-Methoden für Zahlen werden unterstützt.
Die folgenden ES 6-Methoden für Zahlen werden unterstützt:
-
isFinite
-
isInteger
-
isNaN
-
isSafeInteger
-
parseFloat
-
parseInt
-
prototype.toExponential
-
prototype.toFixed
-
prototype.toPrecision
-
EPSILON
-
MAX_SAFE_INTEGER
-
MAX_VALUE
-
MIN_SAFE_INTEGER
-
MIN_VALUE
-
NEGATIVE_INFINITY
-
NaN
-
POSITIVE_INFINITY
-
Integrierte Objekte
Die folgenden integrierten Objekte von ES werden unterstützt.
- Math-Knoten
-
Alle Mathematikmethoden von ES 5.1 werden unterstützt.
Anmerkung
In der CloudFront Functions-Laufzeitumgebung verwendet die
Math.random()
Implementierung Open BSDarc4random
, das mit dem Zeitstempel versehen ist, wann die Funktion ausgeführt wird.Die folgenden ES 6-Mathematikmethoden werden unterstützt:
-
acosh
-
asinh
-
atanh
-
cbrt
-
clz32
-
cosh
-
expm1
-
fround
-
hypot
-
imul
-
log10
-
log1p
-
log2
-
sign
-
sinh
-
tanh
-
trunc
-
E
-
LN10
-
LN2
-
LOG10E
-
LOG2E
-
PI
-
SQRT1_2
-
SQRT2
-
- Datum
-
Alle
Date
-Features von ES 5.1 werden unterstützt.Anmerkung
Aus Sicherheitsgründen gibt
Date
immer den gleichen Wert – die Startzeit der Funktion – während der Lebensdauer einer einzelnen Funktionsausführung zurück. Weitere Informationen finden Sie unter Eingeschränkte Funktionen. - Funktion
-
Die Methoden
apply
,bind
undcall
werden unterstützt.Funktionskonstruktoren werden nicht unterstützt.
- Reguläre Ausdrücke
-
Alle Features für reguläre Ausdrücke von ES 5.1 werden unterstützt. Die Sprache für reguläre Ausdrücke ist Perl-kompatibel. ES 9 benannte Aufnahmegruppen werden unterstützt.
- JSON
-
Alle ES JSON 5.1-Funktionen werden unterstützt, einschließlich
parse
und.stringify
- Array
-
Die folgenden ES 5.1-Methoden für Arrays werden unterstützt:
-
isArray
-
prototype.concat
-
prototype.every
-
prototype.filter
-
prototype.forEach
-
prototype.indexOf
-
prototype.join
-
prototype.lastIndexOf
-
prototype.map
-
prototype.pop
-
prototype.push
-
prototype.reduce
-
prototype.reduceRight
-
prototype.reverse
-
prototype.shift
-
prototype.slice
-
prototype.some
-
prototype.sort
-
prototype.splice
-
prototype.unshift
Die folgenden ES 6-Methoden für Arrays werden unterstützt:
-
of
-
prototype.copyWithin
-
prototype.fill
-
prototype.find
-
prototype.findIndex
Die folgenden ES 7-Methoden für Arrays werden unterstützt:
-
prototype.includes
-
- Eingegebene Arrays
-
Die folgenden von ES 6 eingegebenen Arrays werden unterstützt:
-
Int8Array
-
Uint8Array
-
Uint8ClampedArray
-
Int16Array
-
Uint16Array
-
Int32Array
-
Uint32Array
-
Float32Array
-
Float64Array
-
prototype.copyWithin
-
prototype.fill
-
prototype.join
-
prototype.set
-
prototype.slice
-
prototype.subarray
-
prototype.toString
-
- ArrayBuffer
-
Die folgenden Methoden für
ArrayBuffer
werden unterstützt:-
prototype.isView
-
prototype.slice
-
- Promise
-
Die folgenden Methoden für Versprechen werden unterstützt:
-
reject
-
resolve
-
prototype.catch
-
prototype.finally
-
prototype.then
-
- Crypto
-
Das kryptografische Modul bietet Standardwerkzeuge für Hashing und Hash-basierte Nachrichtenauthentifizierung (HMACCode). Sie können das Modul mit
require('crypto')
laden. Das Modul stellt die folgenden Methoden bereit, die sich genau wie ihre Gegenstücke von Node.js verhalten:-
createHash(algorithm)
-
hash.update(data)
-
hash.digest([encoding])
-
createHmac(algorithm, secret key)
-
hmac.update(data)
-
hmac.digest([encoding])
Weitere Informationen finden Sie unter Krypto (Hash undHMAC) im Abschnitt über integrierte Module.
-
- Konsole
-
Dies ist ein Hilfsobjekt zum Debuggen. Es unterstützt nur die
log()
-Methode, um Protokollnachrichten aufzuzeichnen.Anmerkung
CloudFront Functions unterstützt keine Kommasyntax, wie z.
console.log('a', 'b')
Verwenden Sie stattdessen dasconsole.log('a' + ' ' + 'b')
Format.
Fehlertypen
Die folgenden Fehlerobjekte werden unterstützt:
-
Error
-
EvalError
-
InternalError
-
MemoryError
-
RangeError
-
ReferenceError
-
SyntaxError
-
TypeError
-
URIError
Globale
Das globalThis
-Objekt wird unterstützt.
Die folgenden globalen Funktionen von ES 5.1 werden unterstützt:
-
decodeURI
-
decodeURIComponent
-
encodeURI
-
encodeURIComponent
-
isFinite
-
isNaN
-
parseFloat
-
parseInt
Die folgenden globalen Konstanten werden unterstützt:
-
NaN
-
Infinity
-
undefined
Integrierten Module
Die folgenden integrierten Module werden unterstützt.
Krypto (Hash undHMAC)
Das kryptografische Modul (crypto
) bietet Standardwerkzeuge für Hashing und Hash-basierten Nachrichtenauthentifizierungscode (HMAC). Sie können das Modul mit require('crypto')
laden. Das Modul bietet die folgenden Methoden, die sich genau wie ihre Gegenstücke von Node.js verhalten.
Hashing-Methoden
crypto.createHash(algorithm)
-
Erstellt und gibt ein Hash-Objekt zurück, mit dem Sie Hash-Digests mit dem angegebenen Algorithmus generieren können:
md5
,sha1
odersha256
. hash.update(data)
-
Aktualisiert den Hash-Inhalt mit dem angegebenen
data
. hash.digest([encoding])
-
Berechnet den Digest aller mit
hash.update()
übergebenen Daten. Die Codierung kannhex
,base64
oderbase64url
sein.
HMACMethoden
crypto.createHmac(algorithm, secret key)
-
Erzeugt und gibt ein HMAC Objekt zurück, das das angegebene
algorithm
und verwendetsecret key
. Der Algorithmus kannmd5
,sha1
odersha256
sein. hmac.update(data)
-
Aktualisiert den HMAC Inhalt mit dem angegebenen
data
. hmac.digest([encoding])
-
Berechnet den Digest aller mit
hmac.update()
übergebenen Daten. Die Codierung kannhex
,base64
oderbase64url
sein.
Abfragezeichenfolge
Anmerkung
Das CloudFront Functions-Ereignisobjekt analysiert automatisch URL Abfragezeichenfolgen für Sie. Das bedeutet, dass Sie dieses Modul in den meisten Fällen nicht verwenden müssen.
Das Abfragezeichenfolgenmodul (querystring
) bietet Methoden zum Analysieren und Formatieren von URL Abfragezeichenfolgen. Sie können das Modul mit require('querystring')
laden. Das Modul bietet die folgenden Methoden.
querystring.escape(string)
-
URL-kodiert die angegebene Zeichenfolge und gibt eine
string
maskierte Abfragezeichenfolge zurück. Die Methode wird vonquerystring.stringify()
verwendet und sollte nicht direkt verwendet werden. querystring.parse(string[, separator[, equal[, options]]])
-
Analysiert eine Abfragezeichenfolge (
string
) und gibt ein Objekt zurück.Der
separator
-Parameter ist eine Teilzeichenfolge zum Abgrenzen von Schlüssel- und Wertepaaren in der Abfragezeichenfolge. Standardmäßig ist dies&
.Der
equal
-Parameter ist eine Teilzeichenfolge zum Abgrenzen von Schlüsseln und Werten in der Abfragezeichenfolge. Standardmäßig ist dies=
.Der
options
-Parameter ist ein Objekt mit den folgenden Schlüsseln:decodeURIComponent function
-
Eine Funktion zum Entschlüsseln von prozentkodierten Zeichen in der Abfragezeichenfolge. Standardmäßig ist dies
querystring.unescape()
. maxKeys number
-
Die maximale Anzahl der Schlüssel zum Parsen. Standardmäßig ist dies
1000
. Verwenden Sie den Wert0
, um die Beschränkungen für das Zählen von Schlüsseln aufzuheben.
Standardmäßig wird davon ausgegangen, dass prozentkodierte Zeichen innerhalb der Abfragezeichenfolge die Kodierung -8 verwenden. UTF Ungültige UTF -8-Sequenzen werden durch das Ersatzzeichen ersetzt.
U+FFFD
Zum Beispiel für die folgende Abfragezeichenfolge:
'name=value&abc=xyz&abc=123'
Der Rückgabewert von
querystring.parse()
ist:{ name: 'value', abc: ['xyz', '123'] }
querystring.decode()
ist ein Alias fürquerystring.parse()
. querystring.stringify(object[, separator[, equal[, options]]])
-
Serialisiert ein
object
und gibt eine Abfragezeichenfolge zurück.Der
separator
-Parameter ist eine Teilzeichenfolge zum Abgrenzen von Schlüssel- und Wertepaaren in der Abfragezeichenfolge. Standardmäßig ist dies&
.Der
equal
-Parameter ist eine Teilzeichenfolge zum Abgrenzen von Schlüsseln und Werten in der Abfragezeichenfolge. Standardmäßig ist dies=
.Der
options
-Parameter ist ein Objekt mit den folgenden Schlüsseln:encodeURIComponent function
-
Die Funktion, die für die Konvertierung von URL -unsicheren Zeichen in die Prozentkodierung in der Abfragezeichenfolge verwendet werden soll. Standardmäßig ist dies
querystring.escape()
.
Standardmäßig werden Zeichen, die eine prozentuale Kodierung innerhalb der Abfragezeichenfolge erfordern, als -8 codiert. UTF Um eine andere Codierung zu verwenden, geben Sie die Option
encodeURIComponent
an.Zum Beispiel für den folgenden Code:
querystring.stringify({ name: 'value', abc: ['xyz', '123'], anotherName: '' });
Der Rückgabewert ist:
'name=value&abc=xyz&abc=123&anotherName='
querystring.encode()
ist ein Alias fürquerystring.stringify()
. querystring.unescape(string)
-
Dekodiert URL prozentual kodierte Zeichen in der angegebenen Zeichenfolge und gibt eine Abfragezeichenfolge ohne Escape-Code zurück.
string
Diese Methode wird vonquerystring.parse()
verwendet und sollte nicht direkt verwendet werden.
Eingeschränkte Funktionen
Die folgenden JavaScript Sprachfunktionen werden entweder nicht unterstützt oder sind aus Sicherheitsgründen eingeschränkt.
- Dynamische Codeauswertung
-
Die dynamische Codeauswertung wird nicht unterstützt. Sowohl
eval()
- als auchFunction
-Konstruktoren geben einen Fehler aus, wenn sie versucht werden. Zum Beispiel gibtconst sum = new Function('a', 'b', 'return a + b')
einen Fehler aus. - Timer
-
Die Funktionen
setTimeout()
,setImmediate()
undclearTimeout()
werden nicht unterstützt. Es gibt keine Bestimmung, innerhalb einer Funktionsausführung zu verschieben oder zu ergeben. Ihre Funktion muss synchron bis zum Abschluss ausgeführt werden. - Datum und Zeitstempel
-
Aus Sicherheitsgründen besteht kein Zugang zu hochauflösenden Timern. Alle
Date
-Methoden zum Abfragen der aktuellen Uhrzeit geben während der Lebensdauer einer einzelnen Funktionsausführung immer den gleichen Wert zurück. Der zurückgegebene Zeitstempel ist die Zeit, zu der die Funktion gestartet wurde. Folglich können Sie die verstrichene Zeit in Ihrer Funktion nicht messen. - Zugriff auf das Dateisystem
-
Es gibt keinen Zugriff auf das Dateisystem. Zum Beispiel gibt es kein
fs
-Modul für den Dateisystemzugriff wie in Node.js. - Zugriff verarbeiten
-
Es gibt keinen Prozesszugriff. Beispielsweise gibt es kein
process
globales Objekt für die Verarbeitung von Informationszugriffen wie in Node.js. - Umgebungsvariablen
-
Es gibt keinen Zugriff auf Umgebungsvariablen.
Stattdessen können Sie verwenden, CloudFront KeyValueStore um einen zentralen Datenspeicher mit Schlüssel-Wert-Paaren für Ihre Funktionen zu erstellen. CloudFront CloudFront KeyValueStore ermöglicht dynamische Aktualisierungen Ihrer Konfigurationsdaten, ohne dass Codeänderungen vorgenommen werden müssen. Sie müssen JavaScript Runtime 2.0 verwenden, um es zu verwenden CloudFront KeyValueStore. Weitere Informationen finden Sie unter Amazon CloudFront KeyValueStore.
- Netzwerkzugriff
-
Es gibt keine Unterstützung für Netzwerkaufrufe. Beispielsweise XHR werden HTTP (S) und Socket nicht unterstützt.