CloudFront Functions の JavaScript ランタイム 2.0 の機能
CloudFront Functions の JavaScript ランタイム環境は ECMAScript (ES) バージョン 5.1
主要機能
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
注記
async
、await
、const
、let
は 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()
実装に、関数が実行されたときのタイムスタンプがシードされた OpenBSDarc4random
を使用します。以下の 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
が文字列である場合は、utf8
、hex
、base64
、base64url
のいずれかを入力します。デフォルトはutf8
です。
-
-
Buffer.allocUnsafe(size)
初期化されていない
Buffer
を割り当てます。-
size
: 整数を入力します。
-
-
Buffer.byteLength(value[, encoding])
値の長さをバイト単位で返します。
-
value
: 文字列、Buffer
、TypedArray、Dataview、または Arraybuffer。 -
encoding
: オプション。value
が文字列である場合は、utf8
、hex
、base64
、base64url
のいずれかを入力します。デフォルトはutf8
です。
-
-
Buffer.compare(buffer1, buffer2)
2 つの
Buffer
を比較すると、配列をソートしやすくなります。両者が同じ場合は0
、buffer1
が先に来る場合は-1
、buffer2
が先に来る場合は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
: オプション。utf8
、hex
、base64
、base64url
のいずれかを入力します。デフォルトはutf8
です。
-
-
Buffer.isBuffer(object)
object
がバッファかどうかをチェックします。true
またはfalse
を返します。-
object
: オブジェクトを入力します。
-
-
Buffer.isEncoding(encoding)
encoding
がサポートされているかをチェックします。true
またはfalse
を返します。-
encoding
: オプション。utf8
、hex
、base64
、base64url
のいずれかを入力します。デフォルトはutf8
です。
-
このモジュールは、以下のバッファプロトタイプメソッドを提供します。
-
Buffer.prototype.compare(target[, targetStart[, targetEnd[, sourceStart[, sourceEnd]]]])
ターゲットと
Buffer
を比較します。両者が同じ場合は0
、buffer
が先に来る場合は1
、target
が先に来る場合は-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)
Buffer
とotherBuffer
を比較します。true
またはfalse
を返します。-
otherBuffer
: 文字列を入力します。
-
-
Buffer.prototype.fill(value[, offset[, end][, encoding])
value
にBuffer
を入力します。-
value
: 文字列、Buffer
、または整数を入力します。 -
offset
: オプション。整数を入力します。 -
end
: オプション。整数を入力します。 -
encoding
: オプション。utf8
、hex
、base64
、base64url
のいずれかを入力します。デフォルトはutf8
です。
-
-
Buffer.prototype.includes(value[, byteOffset][, encoding])
value
でBuffer
を検索します。true
またはfalse
を返します。-
value
: 文字列、Buffer
、Uint8Array
、または整数を入力します。 -
byteOffset
: オプション。整数を入力します。 -
encoding
: オプション。utf8
、hex
、base64
、base64url
のいずれかを入力します。デフォルトはutf8
です。
-
-
Buffer.prototype.indexOf(value[, byteOffset][, encoding])
Buffer
で最初のvalue
を検索します。見つかった場合はindex
を返し、見つからなかった場合は-1
を返します。-
value
: 文字列、Buffer
、Unit8Array、または 0 から 255 までの整数を入力します。 -
byteOffset
: オプション。整数を入力します。 -
encoding
: オプション。value
が文字列の場合、utf8
、hex
、base64
、base64url
のいずれかを入力します。デフォルトはutf8
です。
-
-
Buffer.prototype.lastIndexOf(value[, byteOffset][, encoding])
Buffer
で最後のvalue
を検索します。見つかった場合はindex
を返し、見つからなかった場合は-1
を返します。-
value
: 文字列、Buffer
、Unit8Array、または 0 から 255 までの整数を入力します。 -
byteOffset
: オプション。整数を入力します。 -
encoding
: オプション。value
が文字列の場合、utf8
、hex
、base64
、base64url
のいずれかを入力します。デフォルトはutf8
です。
-
-
Buffer.prototype.readInt8(offset)
Buffer
からoffset
でInt8
を読み込みます。-
offset
: 整数を入力します。
-
-
Buffer.prototype.readIntBE(offset, byteLength)
Buffer
からoffset
でInt
をビッグエンディアンとして読み取ります。-
offset
: 整数を入力します。 -
byteLength
: オプション。1
から6
までの整数を入力します。
-
-
Buffer.prototype.readInt16BE(offset)
Buffer
からoffset
でInt16
をビッグエンディアンとして読み取ります。-
offset
: 整数を入力します。
-
-
Buffer.prototype.readInt32BE(offset)
Buffer
からoffset
でInt32
をビッグエンディアンとして読み取ります。-
offset
: 整数を入力します。
-
-
Buffer.prototype.readIntLE(offset, byteLength)
Buffer
からoffset
でInt
をリトルエンディアンとして読み取ります。-
offset
: 整数を入力します。 -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.readInt16LE(offset)
Buffer
からoffset
でInt16
をリトルエンディアンとして読み取ります。-
offset
: 整数を入力します。
-
-
Buffer.prototype.readInt32LE(offset)
Buffer
からoffset
でInt32
をリトルエンディアンとして読み取ります。-
offset
: 整数を入力します。
-
-
Buffer.prototype.readUInt8(offset)
Buffer
からoffset
でUInt8
を読み込みます。-
offset
: 整数を入力します。
-
-
Buffer.prototype.readUIntBE(offset, byteLength)
Buffer
からoffset
でUInt
をビッグエンディアンとして読み取ります。-
offset
: 整数を入力します。 -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.readUInt16BE(offset)
Buffer
からoffset
でUInt16
をビッグエンディアンとして読み取ります。 -
-
offset
: 整数を入力します。
-
-
Buffer.prototype.readUInt32BE(offset)
Buffer
からoffset
でUInt32
をビッグエンディアンとして読み取ります。-
offset
: 整数を入力します。
-
-
Buffer.prototype.readUIntLE(offset, byteLength)
Buffer
からoffset
でUInt
をリトルエンディアンとして読み取ります。-
offset
: 整数を入力します。 -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.readUInt16LE(offset)
Buffer
からoffset
でUInt16
をリトルエンディアンとして読み取ります。-
offset
: 整数を入力します。
-
-
Buffer.prototype.readUInt32LE(offset)
Buffer
からoffset
でUInt32
をリトルエンディアンとして読み取ります。-
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
: オプション。utf8
、hex
、base64
、base64url
のいずれかを入力します。デフォルトはutf8
です。 -
start
: オプション。整数を入力します。デフォルトは 0 です。 -
end
: オプション。整数を入力します。デフォルトはバッファの長さです。
-
-
Buffer.prototype.write(string[, offset[, length]][, encoding])
スペースがある場合はエンコードされた
string
をBuffer
に書き込み、十分なスペースがない場合は切り捨てられたstring
になります。-
string
: 文字列を入力します。 -
offset
: オプション。整数を入力します。デフォルトは 0 です。 -
length
: オプション。整数を入力します。デフォルトは文字列の長さです。 -
encoding
: オプション。オプションで、utf8
、hex
、base64
、またはbase64url
のいずれかを入力します。デフォルトはutf8
です。
-
-
Buffer.prototype.writeInt8(value, offset, byteLength)
offset
でbyteLength
のInt8
value
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: 整数を入力します -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeIntBE(value, offset, byteLength)
ビッグエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: 整数を入力します -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeInt16BE(value, offset, byteLength)
ビッグエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: 整数を入力します -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeInt32BE(value, offset, byteLength)
ビッグエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: 整数を入力します -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeIntLE(offset, byteLength)
リトルエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
offset
: 整数を入力します。 -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeInt16LE(offset, byteLength)
リトルエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
offset
: 整数を入力します。 -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeInt32LE(offset, byteLength)
リトルエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
offset
: 整数を入力します。 -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeUInt8(value, offset, byteLength)
offset
でbyteLength
のUInt8
value
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: 整数を入力します -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeUIntBE(value, offset, byteLength)
ビッグエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: 整数を入力します -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeUInt16BE(value, offset, byteLength)
ビッグエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: 整数を入力します -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeUInt32BE(value, offset, byteLength)
ビッグエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: 整数を入力します -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeUIntLE(value, offset, byteLength)
リトルエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: 整数を入力します -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeUInt16LE(value, offset, byteLength)
リトルエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: 整数を入力します -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeUInt32LE(value, offset, byteLength)
リトルエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: 整数を入力します -
byteLength
:1
から6
までの整数を入力します。
-
-
Buffer.prototype.writeDoubleBE(value, [offset])
ビッグエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: オプション。整数を入力します。デフォルトは 0 です。
-
-
Buffer.prototype.writeDoubleLE(value, [offset])
リトルエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: オプション。整数を入力します。デフォルトは 0 です。
-
-
Buffer.prototype.writeFloatBE(value, [offset])
ビッグエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
value
: 整数を入力します。 -
offset
: オプション。整数を入力します。デフォルトは 0 です。
-
-
Buffer.prototype.writeFloatLE(value, [offset])
リトルエンディアンを使用して
offset
のvalue
をBuffer
に書き込みます。-
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)
-
ハッシュオブジェクトを作成して返します。このハッシュオブジェクトは、指定されたアルゴリズム (
md5
、sha1
、sha256
のいずれか) を使用してハッシュダイジェストの生成に使用できます。 hash.update(data)
-
指定された
data
を使用してハッシュコンテンツを更新します。 hash.digest([encoding])
-
hash.update()
を使用して渡されたすべてのデータのダイジェストを計算します。エンコードはhex
、base64
、base64url
のいずれかを使用します。
HMAC メソッド
crypto.createHmac(algorithm, secret key)
-
指定された
algorithm
とsecret key
を使用する HMAC オブジェクトを作成して返します。アルゴリズムはmd5
、sha1
、sha256
のいずれかを使用します。 hmac.update(data)
-
指定された
data
を使用して HMAC コンテンツを更新します 。 hmac.digest([encoding])
-
hmac.update()
を使用して渡されたすべてのデータのダイジェストを計算します。エンコードはhex
、base64
、base64url
のいずれかを使用します。
制限された機能
次の 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)、ソケットはサポートされていません。