作成: 更新:

AWSLambdaに対してVSCode on WSLでpythonソースをデプロイする

awsvscodepythonlambdadeploy

どの記事も詰め甘い気がしたので、欠けてる部分中心にメモ

前提

日本リージョンへデプロイ

手順

  • AWS/マネコン
    • デプロイ用のs3バケット作る
    • デプロイ用のIAM作る
    • デプロイ用のIAMに以下権限付与する
      • IAMFullAccess
      • AmazonS3FullAccess
      • AmazonAPIGatewayAdministrator
      • AWSCloudFormationFullAccess
      • AWSLambda_FullAccess
      • [注意]権限は自分で絞れ、↑はスコープ広すぎBadPractice
  • ローカル(wslでVSCode)
  • 以下実行
# 0. samの用意
$ sudo apt install gcc
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
$ test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
$ test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
$ test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile
$ echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile
$ brew --version
$ brew tap aws/tap
$ brew install aws-sam-cli

# 1. こんな内容設定しておく
$ cat ~/.aws/config
[profile XXXXX]
region=ap-northeast-1
$ cat ~/.aws/credentials
# IAMの認証ページから取得
[XXXXX]
aws_access_key_id=AAAAAAAAAAAAAAAAAAAA
aws_secret_access_key=BBBBBBBBBBBBBBBBBBBB

# 2. これで実行
$ sam deploy --guided --stack-name [好きな名前(CFnのStack名になる)] --region ap-northeast-1 --profile XXXXX