Lambda 関数のバージョン - AWS Lambda

Lambda 関数のバージョン

バージョンを使用して、関数のデプロイを管理できます。たとえば、安定した本番稼働用のバージョンのユーザーに影響を与えることなく、ベータテスト用の関数の新しいバージョンを公開できます。Lambda によって、関数を公開するたびに関数の新しいバージョンが作成されます。新しいバージョンは、関数の未公開バージョンのコピーです。

関数のバージョンには、以下の情報が含まれています。

  • 関数コードと関連するすべての依存関係。

  • 関数を呼び出す Lambda ランタイム。

  • 環境変数を含むすべての関数設定。

  • 関数の特定のバージョンを識別する一意の Amazon リソースネーム (ARN)。

関数コードと設定は、未公開バージョンの関数でのみ変更できます。バージョンを公開すると、そのバージョンのユーザー向けに一貫したエクスペリエンスを保つためにコードとほとんどの設定がロックされます。関数の設定の詳細については、「AWS Lambda コンソールで関数を設定する」を参照してください。

関数の新しいバージョンを作成するには

  1. Lambda コンソール (関数ページ) を開きます。

  2. 公開する関数の名前を選択します。

  3. 関数の設定ページで、[Actions (アクション)]、[Publish new version (新しいバージョンの公開)] の順に選択します。

  4. (オプション) バージョンの説明を入力します。

  5. [Publish] を選択します。

関数の最初のバージョンを公開すると、使用可能なバージョンのドロップダウンリストが Lambda コンソールに表示されます。[デザイナー] パネルで、関数名の末尾にバージョン修飾子が表示されます。

関数の現在のバージョンを表示するには、関数の設定ページで [Qualifiers (修飾子)] を選択し、[Versions (バージョン)] タブを選択して、関数のバージョンのリストを表示します。関数の新しいバージョンを公開していない場合、リストには $LATEST バージョンのみが表示されます。

Lambda API を使用したバージョンの管理

関数のバージョンを公開するには、PublishVersion API オペレーションを使用します。

次の例では、関数の新しいバージョンを公開します。レスポンスは、バージョン番号およびバージョンがサフィックスとしてついた関数 ARN を含む、新しいバージョンの設定情報を返します。

$ aws lambda publish-version --function-name my-function { "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:1", "Version": "1", "Role": "arn:aws:iam::123456789012:role/lambda-role", "Handler": "function.handler", "Runtime": "nodejs12.x", ... }

バージョンの使用

修飾 ARN または非修飾 ARN を使用して、Lambda 関数を参照できます。

  • 修飾 ARN – バージョンのサフィックスが付いた関数 ARN です。以下の例では、helloworld 関数のバージョン 42 を参照しています。

    arn:aws:lambda:aws-region:acct-id:function:helloworld:42
  • 非修飾 ARN – バージョンのサフィックスが付いていない関数 ARN です。

    arn:aws:lambda:aws-region:acct-id:function:helloworld

関連するすべての API オペレーションで、修飾 ARN または非修飾 ARN を使用できます。ただし、非修飾 ARN を使用してエイリアスを作成することはできません。

関数のバージョンを公開しないことにした場合、関数を呼び出すには、修飾 ARN または非修飾 ARN をイベントソースマッピングで使用します。非修飾 ARN を使用して関数を呼び出すと、Lambda によって暗黙的に $LATEST が呼び出されます。

コードが公開されたことがない場合、またはコードが最後に公開されたバージョンから変更された場合にのみ、Lambda によって新しい関数のバージョンが公開されます。変更がない場合、関数のバージョンは最後に公開されたバージョンのままです。

各 Lambda 関数のバージョンの修飾 ARN は一意です。バージョンを公開した後は、ARN または関数コードを変更することはできません。

アクセス許可の付与

リソースベースのポリシーまたはアイデンティティベースのポリシーを使用して、関数へのアクセスを許可できます。このアクセス許可の範囲は、ポリシーの適用先が関数になるか、関数の 1 つのバージョンになるかによって決まります。ポリシーでの関数のリソース名の詳細については、「Lambda アクションのリソースと条件」を参照してください。

関数のエイリアスを使用すると、イベントソースと AWS Identity and Access Management (IAM) ポリシーの管理をシンプルにすることができます。詳細については、「Lambda 関数のエイリアス」を参照してください。