関数を更新する - Amazon CloudFront

関数を更新する

関数はいつでも更新できます。変更は、DEVELOPMENT ステージ内の関数のバージョンに対してのみ行われます。更新を DEVELOPMENT ステージから LIVE にコピーするには、関数を発行する必要があります。

関数のコードを更新するには、CloudFront コンソールまたは AWS Command Line Interface (AWS CLI) を使用できます。

Console
関数コードを更新するには
  1. CloudFront コンソール (https://console.aws.amazon.com/cloudfront/v4/home#/functions) にサインインし、[関数] ページを選択します。

    対象の関数を選択します。

  2. [編集] を選択し、以下の変更を行います。

    • [詳細] セクションのフィールドを更新します。

    • 関連するキー値ストアを変更または削除します。キー値ストアの詳細については、「Amazon CloudFront KeyValueStore」を参照してください。

    • 関数コードを変更します。[ビルド] タブを選択し、変更を加え、[変更を保存] を選択してコードへの変更を保存します。

CLI
関数コードを更新するには
  1. コマンドラインウィンドウを開きます。

  2. 以下のコマンドを実行します。

    この例では、fileb:// 表記を使用してファイルを渡します。コマンドを読みやすくするために改行も含まれています。

    aws cloudfront update-function \ --name MaxAge \ --function-config '{"Comment":"Max Age 2 years","Runtime":"cloudfront-js-2.0","KeyValueStoreAssociations":{"Quantity":1,"Items":[{"KeyValueStoreARN":"arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"}]}}' \ --function-code fileb://function-max-age-v1.js \ --if-match ETVABCEXAMPLE
    メモ
    • 関数は名前と ETag (if-match パラメータ内) の両方で識別します。必ず現在の ETag を使用してください。describe オペレーションを使用して取得できます。

    • 変更したくない場合でも、function-code を含める必要があります。

    • function-config には注意してください。設定に保持するすべてのものを渡す必要があります。具体的には、キー値ストアを次のように処理してください。

      • 既存のキー値ストアの関連付け (存在する場合) を維持するには、既存のストアの名前を指定します。

      • 関連付けを変更するには、新しいキー値ストアの名前を指定します。

      • 関連付けを削除するには、KeyValueStoreAssociations パラメータを省略します。

    コマンドが成功した場合は、以下のような出力が表示されます。

    ETag: ETVXYZEXAMPLE FunctionSummary: FunctionConfig: Comment: Max Age 2 years \ Runtime: cloudfront-js-2.0 \ KeyValueStoreAssociations= \ {Quantity=1, \ Items=[{KeyValueStoreARN='arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111'}]} \ FunctionMetadata: \ CreatedTime: '2021-04-18T20:38:56.915000+00:00' \ FunctionARN: arn:aws:cloudfront::111122223333:function/MaxAge \ LastModifiedTime: '2023-12-19T23:41:15.389000+00:00' \ Stage: DEVELOPMENT \ Name: MaxAge \ Status: UNPUBLISHED

ほとんどの情報はリクエストから繰り返されます。その他の情報は CloudFront によって追加されます。

メモ
  • ETag – この値は、キー値ストアを変更するたびに変わります。

  • FunctionARN – CloudFront 関数の ARN。

  • Stage – 関数のステージ (LIVE または DEVELOPMENT)。

  • Status – 関数のステータス (PUBLISHED または UNPUBLISHED)。