asdf で terraform 複数バージョン管理
terraform はバージョンアップ頻度が高く、
プロジェクトによってバージョン差分が生じるので
複数バージョンを管理できると運用がスムーズです。
terraform はバージョンアップ頻度が高く、
プロジェクトによってバージョン差分が生じるので
複数バージョンを管理できると運用がスムーズです。
SAM プロジェクトで管理する API Gateway について
AWS Config rule: api-gw-execution-logging-enabled
に対応すべく、
アクセスログを有効化した際にハマった話です。
Events.*.Type = Api
で作成した API Gateway では SAM 上でアクセスログ有効化の設定ができません。
どのようにしたら API Gateway のアクセスログ有効化できるか調査しました。
以前は CloudWatch LogGroup をインポートしましたが
今回は IAM Role をインポートの設定例です。
基本手順は CloudWatch LogGroup と同様ですが、
異なる部分だけ記載します。
1 | ... |
API Gateway のアクセスログ管理用ロググループへログを配信する IAM Role をインポートします。
既にデプロイ済みの SAM プロジェクトは CloudFormation に Stack が作成されています。
その Template
タグで template の内容をローカル環境で template.yml
で保存しましょう。
保存先はどこでも良いです。
1 | ... |
今回は API Gateway のアクセスログ管理用ロググループをインポートします。DeletionPolicy: Retain
としているのは、リソースを作成せず、Stack にインポートする為です。
RPi 4B で以下エラーで詰まった時の備忘録です。
1 | $ pip3 install xxx |
一時的に tmp ディレクトリを指定してからインストールを再度実行することで回避してみます。
1 | $ mkdir $HOME/tmp |
これでうまくいきました ♪
以上
参考になれば幸いです。
AWS Savings Plans Coverage API 実行時に DataUnavailableException エラーが発生しました。
1 | aws ce get-savings-plans-coverage --time-period Start=2023-05-31,End=2023-06-01 --group-by Type=DIMENSION,Key=INSTANCE_TYPE_FAMILY Type=DIMENSION,Key=REGION Type=DIMENSION,Key=SERVICE |
発生する条件を AWS サポートに確認しました。
「対象期間について Savings Plans 適用対象サービスを使用していない場合、上記エラーが発生する」
とのこと。
Cost Explorer で Savings Plans > Coverage report にも以下メッセージがありました。
No savings plans coverage data was returned for this time period. Please adjust the time period or filters if this seems incorrect.」
Savings Plans カバレッジ取得時に DataUnavailableException エラーが発生する
= Savings Plans 適用対象サービスを使用していない
= Savings Plans を買う必要がない
ということでした。
以上
参考になれば幸いです。
1 | cat /etc/os-release |
1 | sudo apt-get install -y libffi-dev libssl-dev |
1 | Could not install packages due to an EnvironmentError: [Errno 28] デバイスに空き領域がありません |
一時的に tmp ディレクトリを指定してからインストールを再度実行することで回避できます。
1 | $ mkdir $HOME/tmp |
それでも以下エラーが出ました。
1 | $ pip3 install grpcio google-cloud-speech |
デフォルトの pip でなく
python3 で https://bootstrap.pypa.io/get-pip.py 実行し
pip をインストールし直し、再チャレンジしてみます。
1 | wget https://bootstrap.pypa.io/get-pip.py |
以上で成功しました。
参考になれば幸いです。
Raspberry Pi と OpenAI を通じて英会話しよう!という動機から
最初の一歩として USB スピーカーから指定したテキストを読み上げる様にしてみました。
Marstudy Raspberry Pi 4 Model B Starter キット で
プリインストールされた Raspbian OS を利用しています。
1 | $ cat /etc/os-release |
サンワサプライ コンパクト PC スピーカー MS-P08UBK を利用します。
自分が購入した 2023-05-10 は ¥857 でした。
1 | aplay -l |
1 | // plughw:<カード>,<デバイス> |
1 | pip3 install pygame |
1 | curl https://www.soundjay.com/buttons/button-3.mp3 -o button.mp3 |
1 | import pygame |
以下実行し mp3 が再生されることが確認できます。
1 | python3 play_sound.py |
1 | pip3 install gTTS |
1 | from gtts import gTTS |
以下実行しスピーカーから「はい、お元気ですか?」と再生されます。
1 | $ python3 speech.py |
以上
参考になれば幸いです。
次回はマイクから音声認識させる設定を執筆したいと思います。
alpine イメージで awscli をインストールする際の備忘録です。
1 | RUN apk add --no-cache \ |
alpine イメージをベースで RUN curl
が失敗し以下エラーが出力されました。
1 | curl: (48) An unknown option was passed in to libcurl |