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 ステートメントがサポートされています。
-
const -
let
次の ES 8 ステートメントがサポートされています。
async-
await
注記
async、await、const、letは JavaScript ランタイム 2.0 でサポートされています。awaitはasync関数内でのみ使用できます。async引数とクロージャはサポートされていません。 -
- リテラル
-
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()
-
- String
-
文字列について以下の 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のInt8valueを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のUInt8valueを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]Bufferindexでオクテット (バイト) を取得および設定します。-
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)、ソケットはサポートされていません。