Tips

プロンプトを硬直させるべきでない VS プロンプトはテンプレートで高品質化させるべき

タイトルの通りなのだが、プロンプト生成およびその適用を効率化するにあたってテンプレートを導入していろいろやっている。 ところがこのプロセスを徹底しようとしたらとても不味い問題にぶち当たった。テンプレートにないプロンプトが投げられないのだ。さ…

【terraform】Data Sourceを使うならModuleではなく呼び出し元で

Summary - 要旨 terraformのData Sourceを使うと外部リソースを参照できるためとても便利である。 が、moduleの中で直接呼ぶよりは、呼び出し元で呼ぶほうが使いまわしやすくてよさそうだ。 Detail - なんのこっちゃ Data Sourceをmoduleの中で呼ぶと、それ…

AWS KMSを復習してみる

KMSを改めて復習したくなったので、自前のメモがてらに記事にしてみる。 KMSとは? KMSで管理できるキーの種類と用途 暗号化と複合化はどのタイミングで行う? 運用上の注意点は? AWS CloudHSM 参考 KMSとは? データの暗号化やデジタル署名に使用するキー…

Terraformを使えるならAmplifyを使わずにS3+CloudFrontでよさそう

この比較記事をたまたま見ていたのでメモ。 結論、現段階では、Terraformを使っているならS3+CloudFrontでよいという印象。 Amplifyは、手軽さとのバーターなのである意味当然なのだが、カスタマイズ性が弱い。たとえばDevelop環境のCloudFrontにWAFをセット…

The API with ID XXXXXXXXXX doesn’t include a resource with path /* having an integration arn:aws:lambda:ap-northeast-1:XXXXXXXXXX:function:product-send-mail on the ANY method.

課題 Lambdaの実行権限をAPI Gatewayに与えると、どういうわけかタイトルのエラーメッセージが、コンソール上で、下記のように赤字で表示された。 解決 表示の問題にすぎないので気にしなくていいらしい。自分の環境ではAPI GatewayからLambdaを実行すること…

CloudFrontのCNAMEは重複不可

問題 新旧の個人用サイトを並行で動かそうとしたところ、CloudFrontの作成でエラー発生(CNAMEAlreadyExists)。 module.personal_website_frontend.aws_cloudfront_distribution.front_cdn: Creating... ╷ │ Error: error creating CloudFront Distribution…

Next.jsで静的HTMLエクスポートをするとリンク先が変わる

課題 Next.jsで静的HTMLエクスポートをすると、各ページごとに*.htmlの拡張子が付いたHTMLファイルが作られる。 ところが、このためにhttps://www.example.com/contactではリンクが繋がらず、https://www.example.com/contact.htmlとしなければいけなくなっ…

Error: Image Optimization using Next.js' default loader is not compatible with `next export`.

課題 Next.jsで作成したアプリケーションを静的ウェブサイトとしてExportしたい。そこでpackage.jsonのbuildの箇所を書き換えた上で "scripts": { "dev": "next dev", "build": "next build && next export", <----ここ "start": "next start", "lint": "nex…

はてなブログで画像を利用する

はてなブログに画像を投稿したいが、記事をすべてgit管理しているためブログ投稿画面から画像を投稿する通常の手順が使いづらい。 画像を大量にGitに保存するのもあまり好ましいことではない。というわけで少しばかりひねった解決策が必要となった。 やりた…

AWS利用時のセキュリティについて考えた際のメモ(2022/10)

AWSのセキュリティ関連知識の復習のため、AWS認定 セキュリティ-専門知識を読んだときのメモ。 セキュリティ意識の高まり 数年前は影が薄かったセキュリティ用のサービスも、今や使って当然のものになりつつある。昔はCloudTrailとConfigさえも恐る恐るそっ…

.tfvarsをDRYに保つには?

課題 同じ設定であれば、設定ファイル(*.tfvars)をコピーして各ディレクトリに置くのではなく、共通の設定ファイルとして読み込むようにしたい。 だがTerraformに外部ファイルの読み込みらしき機能が見当たらない。どうすればよいか。 解決 実行時に-var-fil…

Lambda関数バージョンの性質

課題 Lambda関数バージョンの細かいところが把握できていなかったため、確認。 解決 Lambda関数バージョンはいくつか貯まると古いものが消える。 10件が最大だった。しかしどこに記載しているかドキュメントを探したが見つからず。 自分で古いバージョンを消…

Terraform の変数のとっちらかりをどうにかしたい

課題 Terraformは利用する変数を宣言しないとスクリプト内で利用することができない。 これは素晴らしい制約で、とんでもないところから謎の超スコープ変数が叩き込まれるのを防げて喜ばしいのだが、そうはいっても変数が大量に増えてくるととっちらかって管…

githubにAWSアクセスキーをうっかり公開した(しかけた)場合への備えを用意する(Windows)

課題 Windows上でアクセスキーを使った作業をよく行っているのだが、GitHub上に作業内容を公開しているので、うっかりアクセスキーをアップしてしまわないとも限らない。 あってはならない事故ではあるが、やらかすときにはやらかすのが事故というものである…

ローカルでPython製のLambda関数をJSON渡しで起動するには

課題 テストのため、AWS Lambda Function URLを持ったLambda関数の起動をローカルでも行いたい。最終的にAWS Lambda本体で行うわけだが、その前の段階ではローカルを使えたほうがよい。しかしにJSONを渡す必要があるが、どのようにすればよいか。 解決 pytho…

Visual Studio codeでデバッグしようとしたら勝手にLambdaが起動される

課題 AWS ToolkitとSAM CLIを入れて作業をしていたところ、F5キーでデバッグしようとしたら、その気はないのにLambdaが起動される問題が発生。 解決 ワークスペースの設定(.code-workspace)にデバッグ実行設定が追加されていたためだった。自分で追加した覚…

Terraform のサンプルコードを探したいならTerraform Registryを当たってみる

課題 Terraformのサンプルコード、それも断片的なものではなく、ある程度まとまったサンプルコードが欲しいが、Googleで検索してもみつからないことがある。 そのような場合はどこで探せばよいか。 解決 Terraform Registryを探してみる。 Discover Terrafor…

Terraform Tips, Invalid value for ”path” parameter: no file exists...

課題 下記のようなコードで、Terraformのモジュールのディレクトリからfile()を使ってファイルを読もうとすると、 resource "aws_iam_policy" "send_mail" { name = "${var.env}-lambda-send-mail" path = "/" description = "For IAM Role, ${var.env}-lamb…