CloudFront Functions の JavaScript ランタイム 2.0 の機能 - Amazon CloudFront

CloudFront Functions の JavaScript ランタイム 2.0 の機能

CloudFront Functions の JavaScript ランタイム環境は ECMAScript (ES) バージョン 5.1 に準拠しており、ES バージョン 6~12 の一部の機能をサポートしています。また、ES 仕様に含まれない非標準メソッドも提供しています。次のトピックでは、このランタイムでサポートされるすべての機能を一覧表示します。

主要機能

ES の次の主要機能がサポートされています。

Types]

すべての ES 5.1 タイプでサポートされています。これには、ブール値、数値、文字列、オブジェクト、配列、関数、正規表現が含まれます。

演算子

すべての ES 5.1 演算子でサポートされています。

ES 7 指数演算子 (**) がサポートされています。

ステートメント

次の ES 5.1 ステートメントがサポートされています。

  • break

  • catch

  • continue

  • do-while

  • else

  • finally

  • for

  • for-in

  • if

  • label

  • return

  • switch

  • throw

  • try

  • var

  • while

次の ES 6 ステートメントがサポートされています。

  • async

  • await

  • const

  • let

    注記

    asyncawaitconstlet は JavaScript ランタイム 2.0 で新しく追加されました。

リテラル

ES 6 テンプレートリテラル (複数行の文字列、式の補間、および入れ子テンプレート) がサポートされています。

関数

すべての ES 5.1 機能がサポートされています。

ES 6 のアロー関数、ES 6 のレストパラメータ (残余因数) 構文がサポートされています。

Unicode

ソーステキストおよび文字列リテラルには、Unicode でエンコードされた文字を含めることができます。6 文字の Unicode エスケープシーケンス (コードポイント、例: \uXXXX) もサポートされています。

Strict モード

関数は Strict モードで動作するため、関数コードに use strict ステートメントを追加する必要はありません。これは変更できません。

プリミティブオブジェクト

以下の ES プリミティブオブジェクトがサポートされています。

オブジェクト

オブジェクトについて以下の ES 5.1 メソッドがサポートされています。

  • Object.create() (プロパティリストなし)

  • 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()

オブジェクトについて以下の ES 6 メソッドがサポートされています。

  • Object.assign()

オブジェクトについて以下の ES 8 メソッドがサポートされています。

  • Object.entries()

  • Object.values()

オブジェクトについて以下の ES 5.1 プロトタイプメソッドがサポートされています。

  • Object.prototype.hasOwnProperty()

  • Object.prototype.isPrototypeOf()

  • Object.prototype.propertyIsEnumerable()

  • Object.prototype.toString()

  • Object.prototype.valueOf()

オブジェクトについて以下の ES 6 プロトタイプメソッドがサポートされています。

  • Object.prototype.is()

  • Object.prototype.setPrototypeOf()

文字列

文字列について以下の ES 5.1 メソッドがサポートされています。

  • String.fromCharCode()

文字列について以下の ES 6 メソッドがサポートされています。

  • String.fromCodePoint()

文字列について以下の ES 5.1 プロトタイプメソッドがサポートされています。

  • 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()

文字列について以下の ES 6 プロトタイプメソッドがサポートされています。

  • String.prototype.codePointAt()

  • String.prototype.endsWith()

  • String.prototype.includes()

  • String.prototype.repeat()

  • String.prototype.startsWith()

文字列について以下の ES 8 プロトタイプメソッドがサポートされています。

  • String.prototype.padStart()

  • String.prototype.padEnd()

文字列について以下の ES 9 プロトタイプメソッドがサポートされています。

  • String.prototype.trimStart()

  • String.prototype.trimEnd()

文字列について以下の ES 12 プロトタイプメソッドがサポートされています。

  • String.prototype.replaceAll()

    注記

    String.prototype.replaceAll() は JavaScript ランタイム 2.0 で新しく追加されました。

すべての ES 5 番号がサポートされています。

番号について以下の ES 6 プロパティがサポートされています。

  • Number.EPSILON

  • Number.MAX_SAFE_INTEGER

  • Number.MIN_SAFE_INTEGER

  • Number.MAX_VALUE

  • Number.MIN_VALUE

  • Number.NaN

  • Number.NEGATIVE_INFINITY

  • Number.POSITIVE_INFINITY

番号について以下の ES 6 メソッドがサポートされています。

  • Number.isFinite()

  • Number.isInteger()

  • Number.isNaN()

  • Number.isSafeInteger()

  • Number.parseInt()

  • Number.parseFloat()

番号について以下の ES 5.1 プロトタイプメソッドがサポートされています。

  • Number.prototype.toExponential()

  • Number.prototype.toFixed()

  • Number.prototype.toPrecision()

ES 12 数字区切り文字がサポートされています。

注記

ES 12 数字区切り文字は JavaScript ランタイム 2.0 で新しく追加されました。

ビルトインオブジェクト

ES の以下のビルトインオブジェクトがサポートされています。

Math

ES 5.1 のすべての Math メソッドがサポートされています。

注記

CloudFront Functions runtime 環境では、Math.random() 実装に、関数が実行されたときのタイムスタンプがシードされた OpenBSD arc4random を使用します。

以下の ES 6 数学的プロパティがサポートされています。

  • Math.E

  • Math.LN10

  • Math.LN2

  • Math.LOG10E

  • Math.LOG2E

  • Math.PI

  • Math.SQRT1_2

  • Math.SQRT2

以下の ES 6 Math メソッドがサポートされています。

  • 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()

日付

すべての ES 5.1 の Date 機能がサポートされています。

注記

セキュリティ上の理由から、Date は、単一の関数実行の有効期間中、常に同じ値 (関数の開始時間) を返します。詳細については、「制限された機能」を参照してください。

関数

以下の ES 5.1 プロトタイプメソッドがサポートされています。

  • Function.prototype.apply()

  • Function.prototype.bind()

  • Function.prototype.call()

関数コンストラクタはサポートされていません。

正規表現

すべての ES 5.1 の正規表現機能がサポートされています。正規表現言語は Perl 互換です。

以下の ES 5.1 プロトタイプアクセサプロパティがサポートされています。

  • RegExp.prototype.global

  • RegExp.prototype.ignoreCase

  • RegExp.protoype.multiline

  • RegExp.protoype.source

  • RegExp.prototype.sticky

  • RegExp.prototype.flags

    注記

    RegExp.prototype.sticky および RegExp.prototype.flags は JavaScript ランタイム 2.0 で新しく追加されました。

以下の ES 5.1 プロトタイプメソッドがサポートされています。

  • RegExp.prototype.exec()

  • RegExp.prototype.test()

  • RegExp.prototype.toString()

  • RegExp.prototype[@@replace]()

  • RegExp.prototype[@@split]()

    注記

    RegExp.prototype[@@split]() は JavaScript ランタイム 2.0 で新しく追加されました。

以下の ES 5.1 インスタンスプロパティがサポートされています。

  • lastIndex

ES 9 の名前付きキャプチャグループがサポートされています。

JSON

以下の ES 5.1 メソッドがサポートされています。

  • JSON.parse()

  • JSON.stringify()

配列

配列について以下の ES 5.1 メソッドがサポートされています。

  • Array.isArray()

配列について以下の ES 6 メソッドがサポートされています。

  • Array.of()

以下の 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()

以下の ES 6 プロトタイプメソッドがサポートされています。

  • Array.prototype.copyWithin()

  • Array.prototype.fill()

  • Array.prototype.find()

  • Array.prototype.findIndex()

以下の ES 7 プロトタイプメソッドがサポートされています。

  • Array.prototype.includes()

型付き配列

以下の ES 6 型付き配列コンストラクターがサポートされています。

  • Float32Array

  • Float64Array

  • Int8Array

  • Int16Array

  • Int32Array

  • Uint8Array

  • Uint8ClampedArray

  • Uint16Array

  • Uint32Array

以下の ES 6 メソッドがサポートされています。

  • TypedArray.from()

  • TypedArray.of()

    注記

    TypedArray.from() および TypedArray.of() は JavaScript ランタイム 2.0 で新しく追加されました。

以下の 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()

    注記

    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() は JavaScript ランタイム 2.0 で新しく追加されました。

ArrayBuffer

ArrayBuffer について以下の ES 6 メソッドがサポートされています。

  • isView()

ArrayBuffer について以下の ES 6 プロトタイプメソッドがサポートされています。

  • ArrayBuffer.prototype.slice()

promise

Promise について以下の ES 6 メソッドがサポートされています。

  • Promise.all()

  • Promise.allSettled()

  • Promise.any()

  • Promise.reject()

  • Promise.resolve()

  • Promise.race()

    注記

    Promise.all()Promise.allSettled()Promise.any()Promise.race() は JavaScript ランタイム 2.0 で新しく追加されました。

Promise について以下の ES 6 プロトタイプメソッドがサポートされています。

  • Promise.prototype.catch()

  • Promise.prototype.finally()

  • Promise.prototype.then()

DataView

以下の 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()

    注記

    Dataview ES 6 のプロトタイプメソッドはすべて JavaScript ランタイム 2.0 で新しく追加されました。

記号

以下の ES 6 メソッドがサポートされています。

  • Symbol.for()

  • Symbol.keyfor()

    注記

    Symbol ES 6 メソッドはすべて JavaScript ランタイム 2.0 で新しく追加されました。

テキストデコーダー

以下のプロトタイプメソッドがサポートされています。

  • TextDecoder.prototype.decode()

以下のプロトタイプアクセサプロパティがサポートされています。

  • TextDecoder.prototype.encoding

  • TextDecoder.prototype.fatal

  • TextDecoder.prototype.ignoreBOM

テキストエンコーダー

以下のプロトタイプメソッドがサポートされています。

  • TextEncoder.prototype.encode()

  • TextEncoder.prototype.encodeInto()

エラーのタイプ

以下のエラーオブジェクトがサポートされています。

  • Error

  • EvalError

  • InternalError

  • RangeError

  • ReferenceError

  • SyntaxError

  • TypeError

  • URIError

Globals

globalThis オブジェクトはサポートされています。

以下の ES 5.1 グローバル関数がサポートされています。

  • decodeURI()

  • decodeURIComponent()

  • encodeURI()

  • encodeURIComponent()

  • isFinite()

  • isNaN()

  • parseFloat()

  • parseInt()

以下の ES 6 グローバル関数がサポートされています。

  • atob()

  • btoa()

    注記

    atob() および btoa() は JavaScript ランタイム 2.0 で新しく追加されました。

以下のグローバル定数がサポートされています。

  • NaN

  • Infinity

  • undefined

  • arguments

ビルトインモジュール

以下のビルトインモジュールがサポートされています。

バッファ

このモジュールは、以下のメソッドを提供します。

  • Buffer.alloc(size[, fill[, encoding]])

    Buffer を割り当てます。

    • size: バッファサイズ。整数を入力します。

    • fill: オプション。文字列、Buffer、Uint8Array または整数を入力します。デフォルトは 0 です。

    • encoding: オプション。fill が文字列である場合は、utf8hexbase64base64url のいずれかを入力します。デフォルトは utf8 です。

  • Buffer.allocUnsafe(size)

    初期化されていない Buffer を割り当てます。

    • size: 整数を入力します。

  • Buffer.byteLength(value[, encoding])

    値の長さをバイト単位で返します。

    • value: 文字列、Buffer、TypedArray、Dataview、または Arraybuffer。

    • encoding: オプション。value が文字列である場合は、utf8hexbase64base64url のいずれかを入力します。デフォルトは utf8 です。

  • Buffer.compare(buffer1, buffer2)

    2 つの Buffer を比較すると、配列をソートしやすくなります。両者が同じ場合は 0buffer1 が先に来る場合は -1buffer2 が先に来る場合は 1 を返します。

    • buffer1: Buffer を入力します。

    • buffer2: 別の Buffer 値を入力します。

  • Buffer.concat(list[, totalLength])

    複数の Buffer を連結します。ない場合は 0 を返します。totalLength までの値を返します。

    • list: Buffer のリストを入力します。これは totalLength に切り捨てられることに注意してください。

    • totalLength: オプション。符号なし整数を入力します。空欄の場合はリスト内の Buffer インスタンス総数を使用します。

  • Buffer.from(array)

    配列から Buffer を作成します。

    • array: 0 から 255 までのバイト配列を入力します。

  • Buffer.from(arrayBuffer, byteOffset[, length]))

    オフセット byteOffset から始めて長さが length のビューを arrayBuffer から作成します。

    • arrayBuffer: Buffer 配列を入力します。

    • byteOffset: 整数を入力します。

    • length: オプション。整数を入力します。

  • Buffer.from(buffer)

    Buffer のコピーを作成します。

    • buffer: Buffer を入力します。

  • Buffer.from(object[, offsetOrEncoding[, length]])

    オブジェクトから Buffer を作成します。valueOf() がオブジェクトと等しくない場合は Buffer.from(object.valueOf(), offsetOrEncoding, length) を返します。

    • object: オブジェクトを入力します。

    • offsetOrEncoding: オプション。整数またはエンコーディング文字列を入力します。

    • length: オプション。整数を入力します。

  • Buffer.from(string[, encoding])

    文字列から Buffer を作成します。

    • string: 文字列を入力します。

    • encoding: オプション。utf8hexbase64base64url のいずれかを入力します。デフォルトは utf8 です。

  • Buffer.isBuffer(object)

    object がバッファかどうかをチェックします。true または false を返します。

    • object: オブジェクトを入力します。

  • Buffer.isEncoding(encoding)

    encoding がサポートされているかをチェックします。true または false を返します。

    • encoding: オプション。utf8hexbase64base64url のいずれかを入力します。デフォルトは utf8 です。

このモジュールは、以下のバッファプロトタイプメソッドを提供します。

  • Buffer.prototype.compare(target[, targetStart[, targetEnd[, sourceStart[, sourceEnd]]]])

    ターゲットと Buffer を比較します。両者が同じ場合は 0buffer が先に来る場合は 1target が先に来る場合は -1 を返します。

    • target: Buffer を入力します。

    • targetStart: オプション。整数を入力します。デフォルトは 0 です。

    • targetEnd: オプション。整数を入力します。デフォルトは target の長さです。

    • sourceStart: オプション。整数を入力します。デフォルトは 0 です。

    • sourceEnd: オプション。整数を入力します。デフォルトは Buffer の長さです。

  • Buffer.prototype.copy(target[, targetStart[, sourceStart[, sourceEnd]]])

    バッファを target にコピーします。

    • target: Buffer または Uint8Array を入力します。

    • targetStart: オプション。整数を入力します。デフォルトは 0 です。

    • sourceStart: オプション。整数を入力します。デフォルトは 0 です。

    • sourceEnd: オプション。整数を入力します。デフォルトは Buffer の長さです。

  • Buffer.prototype.equals(otherBuffer)

    BufferotherBuffer を比較します。true または false を返します。

    • otherBuffer: 文字列を入力します。

  • Buffer.prototype.fill(value[, offset[, end][, encoding])

    valueBuffer を入力します。

    • value: 文字列、Buffer、または整数を入力します。

    • offset: オプション。整数を入力します。

    • end: オプション。整数を入力します。

    • encoding: オプション。utf8hexbase64base64url のいずれかを入力します。デフォルトは utf8 です。

  • Buffer.prototype.includes(value[, byteOffset][, encoding])

    valueBuffer を検索します。true または false を返します。

    • value: 文字列、BufferUint8Array、または整数を入力します。

    • byteOffset: オプション。整数を入力します。

    • encoding: オプション。utf8hexbase64base64url のいずれかを入力します。デフォルトは utf8 です。

  • Buffer.prototype.indexOf(value[, byteOffset][, encoding])

    Buffer で最初の value を検索します。見つかった場合は index を返し、見つからなかった場合は -1 を返します。

    • value: 文字列、Buffer、Unit8Array、または 0 から 255 までの整数を入力します。

    • byteOffset: オプション。整数を入力します。

    • encoding: オプション。value が文字列の場合、utf8hexbase64base64url のいずれかを入力します。デフォルトは utf8 です。

  • Buffer.prototype.lastIndexOf(value[, byteOffset][, encoding])

    Buffer で最後の value を検索します。見つかった場合は index を返し、見つからなかった場合は -1 を返します。

    • value: 文字列、Buffer、Unit8Array、または 0 から 255 までの整数を入力します。

    • byteOffset: オプション。整数を入力します。

    • encoding: オプション。value が文字列の場合、utf8hexbase64base64url のいずれかを入力します。デフォルトは utf8 です。

  • Buffer.prototype.readInt8(offset)

    Buffer から offsetInt8 を読み込みます。

    • offset: 整数を入力します。

  • Buffer.prototype.readIntBE(offset, byteLength)

    Buffer から offsetInt をビッグエンディアンとして読み取ります。

    • offset: 整数を入力します。

    • byteLength: オプション。1 から 6 までの整数を入力します。

  • Buffer.prototype.readInt16BE(offset)

    Buffer から offsetInt16 をビッグエンディアンとして読み取ります。

    • offset: 整数を入力します。

  • Buffer.prototype.readInt32BE(offset)

    Buffer から offsetInt32 をビッグエンディアンとして読み取ります。

    • offset: 整数を入力します。

  • Buffer.prototype.readIntLE(offset, byteLength)

    Buffer から offsetInt をリトルエンディアンとして読み取ります。

    • offset: 整数を入力します。

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.readInt16LE(offset)

    Buffer から offsetInt16 をリトルエンディアンとして読み取ります。

    • offset: 整数を入力します。

  • Buffer.prototype.readInt32LE(offset)

    Buffer から offsetInt32 をリトルエンディアンとして読み取ります。

    • offset: 整数を入力します。

  • Buffer.prototype.readUInt8(offset)

    Buffer から offsetUInt8 を読み込みます。

    • offset: 整数を入力します。

  • Buffer.prototype.readUIntBE(offset, byteLength)

    Buffer から offsetUInt をビッグエンディアンとして読み取ります。

    • offset: 整数を入力します。

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.readUInt16BE(offset)

    Buffer から offsetUInt16 をビッグエンディアンとして読み取ります。

    • offset: 整数を入力します。

  • Buffer.prototype.readUInt32BE(offset)

    Buffer から offsetUInt32 をビッグエンディアンとして読み取ります。

    • offset: 整数を入力します。

  • Buffer.prototype.readUIntLE(offset, byteLength)

    Buffer から offsetUInt をリトルエンディアンとして読み取ります。

    • offset: 整数を入力します。

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.readUInt16LE(offset)

    Buffer から offsetUInt16 をリトルエンディアンとして読み取ります。

    • offset: 整数を入力します。

  • Buffer.prototype.readUInt32LE(offset)

    Buffer から offsetUInt32 をリトルエンディアンとして読み取ります。

    • offset: 整数を入力します。

  • Buffer.prototype.readDoubleBE([offset])

    Buffer から offset で 64 ビットダブルをビッグエンディアンとして読み込みます。

    • offset: オプション。整数を入力します。

  • Buffer.prototype.readDoubleLE([offset])

    Buffer から offset で 64 リトルダブルをビッグエンディアンとして読み込みます。

    • offset: オプション。整数を入力します。

  • Buffer.prototype.readFloatBE([offset])

    Buffer から offset で 32 ビットフロートをビッグエンディアンとして読み込みます。

    • offset: オプション。整数を入力します。

  • Buffer.prototype.readFloatLE([offset])

    Buffer から offset で 32 ビットフロートをリトルエンディアンとして読み込みます。

    • offset: オプション。整数を入力します。

  • Buffer.prototype.subarray([start[, end]])

    オフセットし、新しい start および end で切り取った Buffer のコピーを返します。

    • start: オプション。整数を入力します。デフォルトは 0 です。

    • end: オプション。整数を入力します。デフォルトはバッファの長さです。

  • Buffer.prototype.swap16()

    Buffer 配列のバイト順を入れ替え、16 ビットの数値の配列として扱います。Buffer の長さは 2 で割り切れる必要があります。そうしないと、エラーになります。

  • Buffer.prototype.swap32()

    Buffer 配列のバイト順を入れ替え、32 ビットの数値の配列として扱います。Buffer の長さは 4 で割り切れる必要があります。そうしないと、エラーになります。

  • Buffer.prototype.swap64()

    Buffer 配列のバイト順を入れ替え、64 ビットの数値の配列として扱います。Buffer の長さは 8 で割り切れる必要があります。そうしないと、エラーになります。

  • Buffer.prototype.toJSON()

    JSON として Buffer を返します。

  • Buffer.prototype.toString([encoding[, start[, end]]])

    start から end まで Buffer をエンコードされた文字列に変換します。

    • encoding: オプション。utf8hexbase64base64url のいずれかを入力します。デフォルトは utf8 です。

    • start: オプション。整数を入力します。デフォルトは 0 です。

    • end: オプション。整数を入力します。デフォルトはバッファの長さです。

  • Buffer.prototype.write(string[, offset[, length]][, encoding])

    スペースがある場合はエンコードされた stringBuffer に書き込み、十分なスペースがない場合は切り捨てられた string になります。

    • string: 文字列を入力します。

    • offset: オプション。整数を入力します。デフォルトは 0 です。

    • length: オプション。整数を入力します。デフォルトは文字列の長さです。

    • encoding: オプション。オプションで、utf8hexbase64、または base64url のいずれかを入力します。デフォルトは utf8 です。

  • Buffer.prototype.writeInt8(value, offset, byteLength)

    offsetbyteLengthInt8 valueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: 整数を入力します

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeIntBE(value, offset, byteLength)

    ビッグエンディアンを使用して offsetvalueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: 整数を入力します

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeInt16BE(value, offset, byteLength)

    ビッグエンディアンを使用して offsetvalueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: 整数を入力します

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeInt32BE(value, offset, byteLength)

    ビッグエンディアンを使用して offsetvalueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: 整数を入力します

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeIntLE(offset, byteLength)

    リトルエンディアンを使用して offsetvalueBuffer に書き込みます。

    • offset: 整数を入力します。

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeInt16LE(offset, byteLength)

    リトルエンディアンを使用して offsetvalueBuffer に書き込みます。

    • offset: 整数を入力します。

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeInt32LE(offset, byteLength)

    リトルエンディアンを使用して offsetvalueBuffer に書き込みます。

    • offset: 整数を入力します。

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeUInt8(value, offset, byteLength)

    offsetbyteLengthUInt8 valueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: 整数を入力します

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeUIntBE(value, offset, byteLength)

    ビッグエンディアンを使用して offsetvalueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: 整数を入力します

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeUInt16BE(value, offset, byteLength)

    ビッグエンディアンを使用して offsetvalueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: 整数を入力します

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeUInt32BE(value, offset, byteLength)

    ビッグエンディアンを使用して offsetvalueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: 整数を入力します

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeUIntLE(value, offset, byteLength)

    リトルエンディアンを使用して offsetvalueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: 整数を入力します

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeUInt16LE(value, offset, byteLength)

    リトルエンディアンを使用して offsetvalueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: 整数を入力します

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeUInt32LE(value, offset, byteLength)

    リトルエンディアンを使用して offsetvalueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: 整数を入力します

    • byteLength: 1 から 6 までの整数を入力します。

  • Buffer.prototype.writeDoubleBE(value, [offset])

    ビッグエンディアンを使用して offsetvalueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: オプション。整数を入力します。デフォルトは 0 です。

  • Buffer.prototype.writeDoubleLE(value, [offset])

    リトルエンディアンを使用して offsetvalueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: オプション。整数を入力します。デフォルトは 0 です。

  • Buffer.prototype.writeFloatBE(value, [offset])

    ビッグエンディアンを使用して offsetvalueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: オプション。整数を入力します。デフォルトは 0 です。

  • Buffer.prototype.writeFloatLE(value, [offset])

    リトルエンディアンを使用して offsetvalueBuffer に書き込みます。

    • value: 整数を入力します。

    • offset: オプション。整数を入力します。デフォルトは 0 です。

以下のインスタンスメソッドがサポートされています。

  • buffer[index]

    Buffer index でオクテット (バイト) を取得および設定します。

    • 0 から 255 までの数値を取得します。または、0 から 255 までの数値を設定します。

以下のインスタンスプロパティがサポートされています。

  • buffer

    バッファの ArrayBuffer オブジェクトを取得します。

  • byteOffset

    バッファの Arraybuffer オブジェクトの byteOffset を取得します。

  • length

    バッファのバイト数を取得します。

注記

バッファモジュールメソッドはすべて JavaScript ランタイム 2.0 で新しく追加されました。

クエリ文字列

注記

CloudFront Functions イベントオブジェクトは、URL クエリ文字列を自動的に解析します。つまり、ほとんどの場合、このモジュールを使用する必要はありません。

クエリ文字列モジュール (querystring) は、URL クエリ文字列を解析および書式設定するためのメソッドを提供します。require('querystring') を使用してモジュールをロードできます。このモジュールは、以下のメソッドを提供します。

querystring.escape(string)

URL は string をエンコードし、エスケープしたクエリ文字列を返します。このメソッドは querystring.stringify() で使用するため、直接使用しないでください。

querystring.parse(string[, separator[, equal[, options]]])

クエリ文字列 (string) を解析し、オブジェクトを返します。

separator パラメータは、クエリ文字列のキーと値のペアを区切る substring です。デフォルトでは、& です。

equal パラメータは、クエリ文字列のキーと値を区切る substring です。デフォルトでは、= です。

options パラメータは、以下のキーを持つオブジェクトです。

decodeURIComponent function

クエリ文字列のパーセントエンコーディングされた文字を decode する関数です。デフォルトでは、querystring.unescape() です。

maxKeys number

解析するキーの最大数。デフォルトでは、1000 です。キーカウントの制限を解除するには、0 の値を使用します。

デフォルトでは、クエリ文字列のパーセントエンコーディングされた文字は、UTF-8 エンコーディングを使用していると見なされます。無効な UTF-8 シーケンスは、U+FFFD 置換文字に置き換えられます。

たとえば、次のクエリ文字列の場合:

'name=value&abc=xyz&abc=123'

querystring.parse()の戻り値は次のとおりです。

{ name: 'value', abc: ['xyz', '123'] }

querystring.decode()querystring.parse() のエイリアスです。

querystring.stringify(object[, separator[, equal[, options]]])

object をシリアル化し、クエリ文字列を返します。

separator パラメータは、クエリ文字列のキーと値のペアを区切る substring です。デフォルトでは、& です。

equal パラメータは、クエリ文字列のキーと値を区切る substring です。デフォルトでは、= です。

options パラメータは、以下のキーを持つオブジェクトです。

encodeURIComponent function

URL-unsafe 文字をクエリ文字列のパーセントエンコーディングに変換するために使用される関数です。デフォルトでは、querystring.escape() です。

デフォルトでは、クエリ文字列でパーセントエンコーディングが必要な文字は UTF-8 としてエンコードされます。別のエンコーディングを使用するには、encodeURIComponent オプションを指定します。

以下のコードでの例:

querystring.stringify({ name: 'value', abc: ['xyz', '123'], anotherName: '' });

戻り値:

'name=value&abc=xyz&abc=123&anotherName='

querystring.encode()querystring.stringify() のエイリアスです。

querystring.unescape(string)

指定された string 内の URL パーセントエンコーディングされた文字をデコードし、エスケープしていないクエリ文字列を返します。このメソッドは querystring.parse()で使用するため、直接使用しないでください。

Crypto

暗号モジュール (crypto) は、標準のハッシュおよびハッシュベースのメッセージ認証コード (HMAC) ヘルパーを提供します。require('crypto') を使用してモジュールをロードできます。

ハッシュメソッド

crypto.createHash(algorithm)

ハッシュオブジェクトを作成して返します。このハッシュオブジェクトは、指定されたアルゴリズム (md5sha1sha256 のいずれか) を使用してハッシュダイジェストの生成に使用できます。

hash.update(data)

指定された data を使用してハッシュコンテンツを更新します。

hash.digest([encoding])

hash.update() を使用して渡されたすべてのデータのダイジェストを計算します。エンコードは hexbase64base64url のいずれかを使用します。

HMAC メソッド

crypto.createHmac(algorithm, secret key)

指定された algorithmsecret key を使用する HMAC オブジェクトを作成して返します。アルゴリズムは md5sha1sha256 のいずれかを使用します。

hmac.update(data)

指定された data を使用して HMAC コンテンツを更新します 。

hmac.digest([encoding])

hmac.update() を使用して渡されたすべてのデータのダイジェストを計算します。エンコードは hexbase64base64url のいずれかを使用します。

制限された機能

次の JavaScript 言語機能は、セキュリティ上の問題により、サポートされていないか、制限されています。

動的コード評価

動的コード評価はサポートされていません。eval()Function 両方のコンストラクタが試行された場合、エラーをスローします。たとえば、const sum = new Function('a', 'b', 'return a + b') はエラーをスローします。

タイマー

setTimeout()setImmediate()clearTimeout() 関数はサポートされていません。関数実行中に defer または yield する規定はありません。関数は同期的に実行しないと完了できません。

日付とタイムスタンプ

セキュリティ上の理由から、高解像度タイマーにはアクセスできません。現在の時刻を照会するすべての Date メソッドは、単一の関数実行の存続期間中は常に同じ値を返します。返されるタイムスタンプは、関数の実行を開始した時刻です。したがって、関数内で経過時間を測定することはできません。

ファイルシステムへのアクセス

ファイルシステムにはアクセスできません。たとえば、Node.js にあるようなファイルシステムアクセス用の fs モジュールはありません。

プロセスへのアクセス

プロセスにはアクセスできません。例えば、Node.js にあるような、情報アクセスを処理するための process グローバルオブジェクトはありません。

環境変数

環境変数にはアクセスできません。この代わりに、CloudFront KeyValueStore を使用して、CloudFront Functions のための key-value ペアの一元化されたデータストアを作成できます。CloudFront KeyValueStore を使用すると、コード変更をデプロイする必要なく、設定データを動的に更新できます。詳細については、「Amazon CloudFront KeyValueStore」を参照してください。

ネットワークアクセス

ネットワークコールはサポートされていません。たとえば、XHR、HTTP (S)、ソケットはサポートされていません。