2022-06-20 2022/06/20の週次進捗(サービス開発) 実施したこと AWSのIAM設定の学習(S3、Lambda) 前回までの積み残し課題だったLambdaからS3へのアクセス失敗だが、S3のBucketポリシーを正しく設定できていないのか、まだ解決していない状態 開発したこと 学習のみで、今週は実装機能なし 学習したこと S3へのアクセス権限 経緯 S3 Bucketポリシーを設定することで解消することがあると、AWSに詳しいりゅうすけさんよりアドバイスをいただいた 公式ガイドより要点 Amazon S3 コンソールを使用して、新しいバケットポリシーを追加したり、既存のバケットポリシーを編集したりできる バケットポリシーはリソースベースの AWS IAMポリシー バケットポリシーをバケットに追加して、バケットおよびバケット内のオブジェクトに対するアクセス許可を、他の AWS アカウントまたはIAM ユーザーに付与できる オブジェクトのアクセス許可は、バケット所有者が作成したオブジェクトにのみ適用されます。 データのアクセスコントロールは、下記4つのポリシーにより決定される 1.IAM ポリシー 2.S3 バケットポリシー 3.仮想プライベートクラウド (VPC) エンドポイントポリシー 4.AWS Organizations サービスコントロールポリシー (SCP) バケットポリシーの作成/編集の手順 後述の資料を参照 資料 Amazon S3 コンソールを使用したバケットポリシーの追加 - Amazon Simple Storage Service
2022-06-13 2022/06/13の週次進捗(サービス開発) 実施したこと JavaScriptでの非同期処理の復習 Lambda上でのシンプルな非同期処理の書き方とCloudWatch上での確認方法。IAM等の関連サービスの設定方法の学習 開発したこと 学習のみで、今週は実装機能なし 学習したこと 非同期処理、スレッドを知るうえで把握しておくべきJavaScriptの仕組み コールスタック(Call Stack) 関数は呼び出されるとコールスタックに追加される メインスレッドが占有されている状態はコールスタックにコンテキストが積まれている状態とも言える コールスタックにコンテキストが積まれている時は、タスクキューは待ちの状態で、コールスタックにあるコンテクストがはけるまではタスクは処理されない また、コールスタックは、LIFO(Last In First Out)の構造を持った領域 JavaScriptエンジンの内部に実装されている(メインスレッド) タスクキュー(Task Queue) 実行待ちの非同期処理の行列のことを指す。別の言い方をすれば、非同期処理の実行順序を管理しているとも言える 非同期処理はタスクキューに入った順番で処理は実行される また、タスクキューは、FIFO(First In First Out)の構造を持った領域 JavaScriptエンジンの外部に実装されています(メインスレッド外) 重要なこと 非同期処理関連 setTimeやPromiseのthen等で別スレッドにコールバックを仕込んだ場合、それはタスクキューに詰まれる JavaScriptはシングルスレッドのため、タスクキューに詰まれた処理が本処理と並行で走ることはない タスクキューの処理が実行されるのは、グローバルコンテクストで管理される本処理が終わった後になる AWS Lambda関数のログ console.log/info/warning等で出力した情報をCloudWatchで確認することができる コードを修正した後は、かならずデプロイしてからテスト、ログの確認を行うこと Lambda > 関数 > studyForAsyncのコード画面を見ると、テストボタンやデプロイボタン等のUIの配置から、デプロイする前に、現在のソースコードの実行結果をテストできるかのように見える。しかし、これは誤りで、実際にテストボタン押下で実行されるのは、以前にデプロイされた古いコードである。コード修正後は必ずデプロイを行ってから、テストを実行すること(n敗) S3へのアクセス権限設定 資料1.を参考にS3 bucket側にlistBucket許可を設定した このとき、S3側のpolicyドキュメント(JSON)にはprincipalとして対象のLambda関数のARNを設定するのではなく、対象のLambda関数に割り当てられているロールのARNを設定すること(1敗) なお上記だけでは、LambdaからS3へのアクセスは成功していない。 次回、ここから調査を再開 資料 資料1.特定のlambdaからのみS3のバケットを操作できるバケットポリシーを作りたい - Qiita qiita.com 資料2. 非同期処理がJavaScript実行エンジン上のスレッドで、どのように処理されるのかが丁寧に説明されており、たいへん参考になる 所管 学習項目 AWSの基礎知識が不足しているため、学習速度が遅い AWS基礎について認定試験を受けるなりして、基礎固めした方が実装が早く進むのかもしれない(今月末時点で検討する。7/2(土)振り返りの課題に追加済み) 学習の環境、手法 新たに契約したコワーキングスペースがとても快適で生産性が上がる アクセスが良く、設備がほどほどに良く、コストがとても安価 半年ほど、様々なコワーキングスペースを試していたが、ベストの環境を見つけてしまった デメリットとしては美味しいお店が周囲に多いこと。体重管理の観点で危険