#たまもく 2019/11/23 成果

2019-11-23 09:01:09


たまもくも少し間をあけましたが、再開してトータル第6回を数えています。


やるからにはちゃんと成果を記録に残さねば、と思いまして、作業記録を残します。


今回は、来月のアドベントカレンダーのネタであるところの、「AWS LambdaでPHPでスクレイピングする環境を整える」件の調査を進めました。


AWS Lambda に Serverless CLI をつかってデプロイする


インストールとかは、以下の手順。sudoとかは適宜つけてください。


$ pip install awscli aws-sam-cli
$ npm i -g serverless

まずはawsにログインします。アクセスキー、シークレットの入手は次の節でまとめます。


$ aws configure
AWS Access Key ID [None]: XXXXXXXXXXXXXXXX
AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Default region name [None]: ap-northeast-1
Default output format [None]:

テンプレを使ってプロジェクトを作ります。


$ sls create -t aws-provided -p aws-php-selenium-docker

まずは、テンプレそのまんまをデプロイしてみます。


$ sls deploy

権限が足りないエラー発生、権限追加、を何度か繰り返して、ようやくデプロイできました。


呼び出してみます。


$ sls invoke -f hello
{
"body": {
"input": {},
"msg": "Wecome to serverless!"
}
}

JSONが返ってきました。


AWS IAM で適切な権限のユーザをつくる


これ、だいぶ試行錯誤しました。正解かどうかも若干あやしいところ。ひとまず、やったことを残します。誰かツッコんでください。(切実)



  1. ルートアカウントでログイン

  2. IAM でグループを作成する

  3. IAM でユーザを作成し、グループに割り当てる

  4. アクセスキー、シークレットを取得する


IAMの画面です。


グループを作成します。


01_create-group.png


グループに適当に名前をつけます。


02_create-group-name.png


適当にポリシーをアタッチします。


03_create-group-attach-policy.png


確認画面で、作成ボタンで作成します。


04_create-group-verify.png


次に、ユーザを作成します。


05_create-user.png


適当にユーザ名を作成します。


06_create-user-name.png


ユーザを先ほど作成したグループに加えます。


07_create-user-add-group.png


こうしてできたユーザの認証情報から、アクセスキーの生成を行います。


08_create-user-get-access-key.png

09_create-user-show-access-key.png


あとから思ったんですけど


これ、awscli から全部できるんじゃね?と思って、調べてみたらできるっぽいです。


ルートアカウントのセキュリティ資格情報を開きます。


10_root-user-authentication.png


「アクセスキー (アクセスキー ID とシークレットアクセスキー)」から、新しいアクセスキーを作成します。


11_root-user-create-key.png


これを、aws configure で入力してルートアカウント権限になります。あとは、コマンドをバシバシと打つ。


・・・はずなんですけど、今日は時間切れ。