【AWS】【Amplify Auth】Can't resolve '@aws-amplify/core/internals/utils

AWSのAmplifyで認証機能を入れてHostedUIのログインページを表示させようとしたら、以下のようなエラーが発生。 Can't resolve '@aws-amplify/core/internals/utils とりあえずないと言われてるので、以下コマンドでaws-amplify/coreを入れてみる npm instal…

【AWS】【Amplify】Downloading release from https://package.cli.amplify.aws/12.10.3/amplify-pkg-win-x64.tgz Error fetching release: Request failed with status code 407

amplifyの最新バージョンをインストールしようと以下コマンドを実行した。 npm install -g @aws-amplify/cli さっそく「amplify init」を実行してみると以下のようなエラーが。。 Downloading release from https://package.cli.amplify.aws/12.10.3/amplify…

Proxy環境下でnpmが使えない

npm

会社のProxy環境下でnpmをinstallを実行しようとしたところ、407エラーが出て実行できない。認証情報(ユーザID、パスワード)含めて、ちゃんと以下のコマンドで登録したのになぜだろう。 export http_proxy=http://username:password@10.x.x.x:15080 export…

【AWS】DynamoDB CapacityUnitの計算式

AWS Developer Associateの試験で必ず出題されるとDynamoDBのCapacityUnitの計算問題。その計算方法について文章で説明する記事は多くても、その計算式について意外とどこにも掲載されてないので、自分で見出した式をメモ。 RCU(Read Unit Capacity)計算式 ◎…

【AWS Amplify】amplify add auth -> amplify push | The runtime parameter of nodejs12.x is no longer supported

amplify add authの後、amplify pushをすると何度やってもLambda作成のところで以下のようなエラーが発生。 Resource handler returned message: "The runtime parameter of nodejs12.x is no longer supported for creating or updating AWS Lambda functio…

【AWS】Cloud9からECS ExecでFargateのコンテナにアクセスする

Cloud9からSSM経由でECS上のFargateのコンテナにECS Execを使ってアクセスしたので手順をメモ Cloud9に「session-manager-plugin」をインストール デフォルトではこれはインストールされていないので、まずは「session-manager-plugin」をインストールします…

【React】マイ・ベストプラクティス

(2024年2月現在) Reactの記述方法ってこれがベストプラクティス!みたいなのに結構揺れがある言語(ライブラリ)だと思っていて、いろんなところで意見が分かれる議論が交わされてますよね。まだReact歴も浅くちゃんと最初にベストプラクティスを学びたかっ…

【React】react-simplemde-editor:文字入力エリア(のみ)にスクロールバーを追加する

課題 Reactでreact-simplemde-editorを導入してMarkdownエディターを作成時、文字入力エリアを固定してスクロールバーをつけたいんだがタグの中にラッピングされてしまって制御できない。 対応 開発者モードでCSSを確認したところ、どうやら↓のheightが原因…

2023年10月【AWS Training】日本リージョンでサインインできない問題の解決方法

経緯 今週末にAWSの試験を受験する予定だったのですが、勉強が間に合いそうになくリスケしようとAWS Trainingにサインインした時の話です。 これそもそも動線がややこしくて、最初にアカウントを作ってサインインする時も以下の記事を参考にようやく自分の試…

【Java / SpringBoot】package org.springframework.web.bind.annotation does not exist even though it's defined in POM

MavenのSpringBootプロジェクトをdockerで立ち上げようとした時に以下のようなエラーが発生した。 package org.springframework.web.bind.annotation does not exist even though it's defined in POM 以下のページ内を参考に、 stackoverflow.com pom.xmlに…

【Amazon Inspector】【指摘対応】apt-get upgradeがCodeBuildでエラーになる

フロントエンド/バックエンドをまとめてFargateで運用 + CICDにCodePipelineを使用してDeployするアプリをAmazon Inspectorの脆弱性診断にかけて、その指摘対応をした時の話。 指摘事項とその対応方法の確認 まずはどういう指摘があったのかをAmazon Inspect…

【AWS CLIで構築】Lambdaを使用してEFS上のファイルをS3へ移行する

アプリのログファイルをEFSに吐いていたのですが、溜まってきたので古いファイルをS3に移行させるバッチをLambdaで作ってみた。簡易的だけど以下のような構成になります。今回は一部の既存のリソース(EFS, S3, SNS)を使用する必要があり、CloudFormationで…

【AWS Lambda Layers】Unable to import module 'xxx' : No module named 'xxx'

事象 公式ドキュメント通り、PythonでLambda Layersを作成して、既存の関数にAttachして実行したところ、以下のようなErrorが発生した。 Unable to import module 'xxx' : No module named 'xxx' あれ。何か間違えたかな、とフォルダ構成を確認し、Lambdaの…

【Python】現在時刻をJSTで取得:「2023-05-10_01-10-22_345」形式

from datetime import datetime, timedelta, timezone ~~~ JST = timezone(timedelta(hours=+9), 'JST') now = datetime.now(JST) strf_now = (now.strftime('%Y-%m-%d_%H-%M-%S_%f')[:-3])

【Python】420 Enhance your Calm

PythonでとあるAPIを呼び出す処理を記述し実行したところ、以下のようなエラーが返ってきた。 420 Enhance your Calm 日本語訳にかけても意味不明でなんじゃこりゃ?って感じだったが、どうやら速度制限に引っかかった場合に返されるらしい。 そこでAPI呼び…

【AWS / API Gateway】ステージからPOSTやPUTでLambdaを呼び出すと「Internal server error」になる

課題 API Gatewayのステージでステージ変数を設定し、Lambda側でバージョンとエイリアスを設定して紐付けて呼び出すよくある構成で構築し、API Gatewayの画面に出てきたURLを叩いてみると「Internal server error」と表示される。 調査 API Gatewayのステー…

【AWS】【CodeBuild】Dockerイメージのバージョンアップ方法

2023年2月頃、AWSから以下のようなメールが届いた。 どうやら今使用しているDockerイメージのバージョンのサポートが3月で切れるらしい。ってことで、このバージョンをあげます。 CodeBuild→ビルドプロジェクト→対象のビルド→編集ボタン→環境、で今回はイメ…

【AWS】LambdaからEFSにアクセスして操作する

LambdaからEFS上のファイルを操作する必要があったので、その設定方法をメモ書き。 まず、前提としてEFSはVPCの内側、Lambdaは外側にあるサービスなので、そのままでは当然アクセスすることができない。 解決策としてLambdaをVPCの中、さらにEFSがマウントポ…

【AWS】[2023/2/17] SOA(SysOps Administrator:SOA-C02)合格体験記 - SOAは自宅でテストしてはいけない

2023/2/17、AWSのSOA(SysOps Administrator:SOA-C02)を受けて合格したので情報共有したいと思います。 難易度について 何年か前にSAAは取得しており、同じアソシエイトクラスの資格なので同じくらいの難易度を想定していたのですが、全く違いました。 と…

【AWS】AWS Transfer FamilyでEFSにパスワード認証で接続する

AWS Transfer Familyのパスワード認証の設定で、S3への接続設定の記事は結構あったが、EFSの方があまりなく若干追加で設定しないといけないことがあったので共有します。 1. リソースの作成 まずはパスワード認証に必要なリソース(AWS Transfer Family, API…

【AWS】AWS Transfer Family でEFSにWinSCPでSFTP接続する

EFSへは踏み台サーバーのEC2経由でログインして利用していたが、作業効率が悪いのでWinSCPとかで繋げたいなということで、AWS Transfer Familyを利用することにした。手順は以下の通り(※EFSは作成済のものとする) 1) SFTPサーバーの作成 AWS Transfer Fami…

【AWS】EventBridgeでFargateECSを自動停止/起動する

開発環境のECSコンテナを、コスト削減のため夜間は自動で止めておく設定をEventBridgeのルールを使用して実装する。今回作成するルールは二つ。 ・コンテナを停止させるルール ・コンテナを起動させるルール 作成の仕方は同じなので停止させるルールで以下手…

【AWS / CodeBuild / Docker】You have reached your pull rate limit. You may increase the limit by authenticating and upgrading

◆問題 CodePipelineでECSのFargateにDeploy時、DockerHubのRateLimitに引っかかった。何度かやると成功する時もあるけど、正直何度も実行するのが面倒なので渋々対策することに。 ◆解決方法 基本的には以下のページにあった内容の通りで行けた。 fu3ak1.hate…

【AWS / Laravel】The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied

◆問題 ECSのFargateでLaravelのプロジェクトを立ち上げた時に掲題のエラーが発生。storageのフォルダはDockerfileで以下の通り権限変更しており、同じDockerイメージでローカルで立ち上げた時は何事もなく動くのになぜ?? RUN chmod -R 775 storage ◆原因 色…

【AWS】CodePipelineでFargateのコンテナをDeploy時、ALBのTargetGroupが切り替わらない

◆問題 掲題の通りなのだが、自分でECSのFargateを立てて、CodePipelineでDeploy自動化を実装した際、ECS側のTargetGroupは切り替わるけど、ALBのTargetGroupが2つのうち1つ(Green側だけ)が固定となり切り替わらず、CodePipelineでGreen側にDeployした時だ…

【AWS】standard_init_linux.go:228: exec user process caused: exec format error 解決方法

MacでローカルでDockerイメージをビルドしてAWSのECRにpush。ECR上のイメージでECSのFargateを作って起動させた時に以下エラーが発生してコンテナが起動してはすぐに落ちるのループ状態に。 standard_init_linux.go:228: exec user process caused: exec for…

【Laravel】ECS Fargate環境上のLaravelのログをCloudWatchに出力させる

Laravelかどうかに関係なく、ECS Fargate上のアプリのログをCloudWatchに表示させるには、ログを標準出力させればOK。Laravelの場合、config/logging.phpの「channel」部分を以下のように調整してあげるだけでよい。 'channels' => [ 'stack' => [ 'driver' …

【Laravel】APIでBasic認証を使う

LaravelにはデフォルトでBasic認証の仕組みが実装されているので、基本的には「route/api.php」で以下のようにmiddlewareを追加してあげるだけ。 Route::get('sampleapi', 'SampleApiController@index')->middleware('auth.basic'); これだけで「User」テー…

【Laravel】The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened in append mode

storageフォルダは777に権限していて、welcome画面とかは普通に表示できているのに、apiのURLを呼び出すとなぜかこのエラーが発生。storageフォルダのオーナーを変更すると治るとのこと。 chown -R www-data:www-data storage

【AWS】CodeCommit(gitリポジトリ)を作成しローカルでcloneする

(STEP) 1.CodeCommitのリポジトリを作成 2.CodeCommitを操作するIAMユーザーを作成 3.IAMユーザーの認証情報を生成 4.ローカルにgitリポジトリをcloneする 1. CodeCommitのリポジトリを作成 1.1. AWSマネジメントコンソール ⇒ CodeCommit ⇒ リポジトリ ⇒ 「…