LoginSignup
3
1

【AWS】Lambdaのyamlによる移管方法

Last updated at Posted at 2023-08-04

1. Lambdaソースのダウンロード

まずは、移管対象のLambdaのSAM(yaml)とデプロイパッケージ(zip)をダウンロードする。

  1. 移行する Lambda 関数のコンソール画面へ移動
  2. Lambda 関数ウィンドウで [アクション] を選択し、[関数のエクスポート] を選択
    Lambda_SAM1.PNG
  3. [ AWS SAM ファイルのダウンロード ] を選択してダウンロード
  4. [デプロイパッケージのダウンロード] を選択してダウンロード
    Lambda_SAM2.PNG

2. 移行先のAWSのS3にデプロイパッケージをアップロード

  1. 適当なバケットに先ほどダウンロードしたデプロイパッケージ(zip)をアップロードする
  2. ファイルのS3 URIをコピーしておく
    Lambda_SAM3.PNG

3. CloudFormationでLambda 関数をデプロイする

AWsサービス構成ファイルであるSAM(yaml)を移管先へ修正して、CloudFormationで構築する。

  1. ダウンロードしたSAM ファイルを開く
    AWSTemplateFormatVersion: '2010-09-09'
    Transform: 'AWS::Serverless-2016-10-31'
    Description: An AWS Serverless Specification template describing your function.
    Resources:
      *******:
        Type: 'AWS::Serverless::Function'
        Properties:
          Handler: lambda_function.lambda_handler
          Runtime: python3.11
          CodeUri: s3://*********/*******************.zip
          Description: ''
          MemorySize: 128
          Timeout: 3
          Role: 'arn:aws:iam::**********:role/AWSLambda-ExecutionRole'
          RuntimeManagementConfig:
            UpdateRuntimeOn: Auto
    
    
  2. SAM ファイルを編集する
    • CodeUri: の後に、S3 URIを記載する
    • Lambda用にIAM Roleを作成する AWSLambda-ExecutionRole
    • Role:の後に、Lmabdaに付与したいRoleのarnに置き換える
    • その他、Runtime:やLayer:を適宜書き換える
  3. CloudFormationのコンソール画面で、スタックの作成を押す
    Lambda_SAM4.PNG
  4. テンプレートの指定からテンプレートファイルのアップロードを押し、SAMをアップロードする
  5. 次へを押す
  6. スタック名を決める。このスタック名はLambda関数名の先頭文字 ******-元の名前-ランダムな文字列になる
  7. 次へを押す
  8. 次へを押す
  9. 3か所チェックを入れて、送信を押す

参考文献

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1