Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.

Choose your framework/language

Gen1 DocsLegacy

Page updated Jan 23, 2025

関数の設定

defineFunctionは、合理的でありながら最小限のデフォルト設定を備えて提供されます。以下のオプションを使用して、関数の設定を調整できます。

注: 以下のオプションは、resourceGroupNameを除いて、カスタム関数ではサポートされていません。

name

デフォルトでは、関数はdefineFunction呼び出しが配置されているディレクトリに基づいて名前が付けられます。上記の例では、amplify/functions/my-demo-function/resource.tsで関数を定義すると、デフォルトで関数にmy-demo-functionという名前が付けられます。

entryが指定されている場合、名前はentryパスのベース名にデフォルト設定されます。たとえば、./signup-trigger-handler.tsentryは、関数名がデフォルトでsignup-trigger-handlerになります。

このオプションプロパティを使用して、関数の名前を明示的に設定できます。

amplify/functions/my-demo-function/resource.ts
export const myDemoFunction = defineFunction({
entry: './demo-function-handler.ts',
name: 'overrideName' // デフォルトの命名動作をオーバーライドするために名前を明示的に設定
});

timeoutSeconds

デフォルトでは、関数は3秒後にタイムアウトします。これは、最大15分までの任意の秒数に設定できます。

amplify/functions/my-demo-function/resource.ts
export const myDemoFunction = defineFunction({
timeoutSeconds: 60 // 1分のタイムアウト
});

memoryMB

デフォルトでは、関数には512 MBのメモリが割り当てられています。これは128 MBから10240 MBまで設定できます。これは関数呼び出しのコストを増加させる可能性があることに注意してください。詳細な料金情報については、こちらを参照してください。

amplify/functions/my-demo-function/resource.ts
export const myDemoFunction = defineFunction({
memoryMB: 256 // 関数に256 MBのメモリを割り当てます。
});

ephemeralStorageSizeMB

デフォルトでは、関数には512MBのエフェメラルストレージが割り当てられています。これは512 MBから10240 MBまで設定できます。これは関数呼び出しのコストを増加させる可能性があることに注意してください。詳細な料金情報については、Lambda料金ドキュメントを参照してください。

amplify/functions/my-demo-function/resource.ts
export const myDemoFunction = defineFunction({
ephemeralStorageSizeMB: 1024 // 関数に1024 MBのエフェメラルストレージを割り当てます。
});

runtime

現在、defineFunctionではNodeランタイムのみがサポートされています。ただし、関数が使用するNodeのバージョンを変更できます。デフォルトは、AWS Lambdaでサポートされている最も古いNode LTSバージョンです(現在はNode 18)。

古いバージョンのNodeを使用したい場合は、Lambda Nodeバージョン廃止予定スケジュールに注意してください。Lambdaが古いNodeバージョンのサポートを終了する場合、サポートされている新しいバージョンに更新する必要があります。

amplify/functions/my-demo-function/resource.ts
export const myDemoFunction = defineFunction({
runtime: 20 // Node 20を使用
});

entry

デフォルトでは、AmplifyはdefineFunctionが呼び出されているファイルと同じディレクトリにあるhandler.tsという名前のファイルで関数ハンドラーを探します。別のハンドラーの場所を指定するには、entry値を指定してください。

amplify/functions/my-demo-function/resource.ts
export const myDemoFunction = defineFunction({
entry: './path/to/handler.ts' // このパスは絶対パスであるか、現在のファイルからの相対パスである必要があります。
});

resourceGroupName

デフォルトでは、関数はfunctionという名前のリソースグループにグループ化されます。これをオーバーライドして、関連する関数をauthdatastorageなどの他のAmplifyリソースでグループ化したり、独自のカスタムグループに分離したりできます。 これは、相互に依存するリソースがあり、それらをグループ化したい場合に通常役立ちます。

amplify/functions/my-demo-function/resource.ts
export const myDemoFunction = defineFunction({
resourceGroupName: 'data'
});