29
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS Lambda から Amazon EFS へのアクセス

Posted at

AWS Lambda から Amazon EFS へアクセスできるようになったとのことでやってみた。

これによりLambda の仕様上、512 MB という仕様制限がありましたが、これを超えるファイルの操作が可能になります。

また、S3は結果整合性ですが、EFS を利用することによりデータの一貫性が保てることができます。

新機能 – Lambda関数の共有ファイルシステム – Amazon Elastic File System for AWS Lambda

#1.セキュリティグループの作成#

##AWS Lambda 用セキュリティグループの作成##

セキュリティグループ
インバウンドルール なし
アウトバウンドルール すべてのトラフィック

##Amazon EFS 用セキュリティグループの作成##

セキュリティグループ
インバウンドルール NFS,TCP,2049,AWS Lambda のセキュリティグループID
アウトバウンドルール すべてのトラフィック

#2.Amazon EFS の作成#

##ステップ 1: ネットワークアクセスを設定する##
AWS Lambda を作成する対象の VPC を選び、マウントターゲットでサブネットを選択。
セキュリティグループには、「Amazon EFS 用セキュリティグループの作成」で作成したsgを選択します。
1.png

##ステップ 2: ファイルシステムの設定を行う##
今回は、AWS Lambda から Amazon EFS のアクセスを確認することが目的なので、タグだけを追加し、他の設定はデフォルトでいきます。
2.png

##ステップ 3: クライアントアクセスを設定##
AWS Lambda からアクセスするための アクセスポイントの作成 を行います。
3.png

##ステップ 4: 確認と作成##
「ファイルシステムの作成」をクリック。

#3.AWS Lambda の作成#

##IAM ロールの作成##
AWS Lambda 関数に付与する IAM ロールを作成する。
 AWSLambdaVPCAccessExecutionRole
 AmazonElasticFileSystemClientReadWriteAccess
 CloudWatchLogsFullAccess
4.png

##AWS Lambda 関数の作成##
ランタイムはPython3.8、既存のロールは「IAM ロールの作成」で作成したものを指定します。

VPCとセキュリティグループは、「AWS Lambda 用セキュリティグループの作成」で作成していたものを指定します。
5.png

さて、今回のメインはここで、ファイルシステムの追加をします。「Amazon EFS の作成」で作成したAmazon EFS 及びアクセスポイント、ローカルマウントポイントを指定します。
6.png

次の通りLambda関数を作成します。
AWS Lambda から Amazon EFS 上にファイル efslambda.txt を作成、書き込、保存。

file_path = '/mnt/data/'
 
def lambda_handler(event, context):
    file_name = 'efslambda.txt'
    write_string = event['text']
 
    with open(file_path + file_name, mode='w') as f:
        f.write(write_string)
 
    with open(file_path + file_name) as f:
        print(f.read())

#4.テスト#

lambdaよりテストイベントを実行する。

{
  "text": "This in lambda"
}

スクリーンショット 2020-06-27 16.23.26.png

29
12
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
29
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?