エンジニアのちょいネタ

システムエンジニアをしています。日々、分かったちょいネタを記事にしていきます。

AWS CodeCommitへpushしたいけど、IAMポリシーでMFA必須になっているとき

IAMユーザーを払い出してもらった時、「MFAを有効にしないと何もできませんよ」と言われることが多いと思う。そういうIAMユーザーでAWS CodeCommitを使いたい場合でも、MFAが求められます。

気の利いたアカウント管理者なら、CodeCommitのときはMFAを必要としないようにしてくれていることもあるが、そうでない場合はどうするか?

このページを読みましょう。

docs.aws.amazon.com

 

これをインストールすることでこのようにgit pushできるようになります。

git push codecommit::ap-northeast-1://リポジトリ

Dockerfileで変数を使いたい場合

Dockerfileで以下のように定義します

FROM php:8.2.2-fpm

ARG environment=development
RUN cp -r /usr/local/etc/php/php.ini-${environment} /usr/local/etc/php/php.ini
 

 

 ビルドする時

Dockerfileで設定しているデフォルト値を上書きしたい場合

docker build --build-arg environment=production  .....

 

ARGは、ビルドした時に使いたい変数として使います。コンテナイメージの中で変数を使いたい場合は、ENVを使います。

Dockerコンテナでcronを動かしたい場合

Dockerコンテナ上でcronを使うのはとても面倒です。開発環境で使っているなら、サラッと動かしたいと思います。そんな時はホストOS上のcronを使って、docker execさせましょう。このようにcron設定すれば動かせると思います。

 

*/5 * * * * root docker exec コンテナ名 sh -c "動かしたいコマンド"

php-fpmのDockerイメージを使って、ログを出力する

docker logs でphp-fpmのログを確認したいが、何も出力されない。よくよく調べたら、設定を変更しないとだめでした。

 

とっても参考になった記事はこちらです。

dev.to

AWS LambdaにURLを設定し、ローカルPCのJavaScriptからアクセスできるようにする

前提

  • HTMLとJavaScriptファイルはローカルPC上に置いてある
  • VS-Codeの機能拡張:Live ServerでHTMLを閲覧する
  • JavaScriptからaxiosやfetchでAWS LambdaのURLへアクセスする
  • aws-cdkを使う

Lambda側の設定

CORSの設定をする必要があり、以下のように設定します。

import { Runtime, Alias, FunctionUrlAuthType } from 'aws-cdk-lib/aws-lambda'
 
const LambdaUrl = LambdaAlias.addFunctionUrl({
authType: FunctionUrlAuthType.NONE,
cors: { allowedOrigins: ['http://127.0.0.1:5500'], allowedHeaders: ['authorization'] },
})