ヤマムギ

growing hard days.

*

執筆環境(PyCharm, CodeCommit, CodePipeline, S3, Lambda, 署名付きURL)

      2020/01/09

2018年から、年に1回ぐらい商業本の執筆をさせていただいております。
2020年は薄い本にもチャレンジしたいです。

今利用している執筆環境を記録しておきます。
アーキテクチャはこちらです。

  • フォーマットはマークダウンです。
  • MacbookにインストールしたPyCharmで書いてコミットします。
  • リポジトリはCodeCommitです。
  • コミットされるとCodePipelineがzipにしてS3バケットに格納します。
  • S3バケットにzipが格納されるとLambdaが署名付きURLを生成してSNSトピックにパブリッシュします。
  • サブスクライバーのEメールに署名付きURLが送信されます。

CodePipeline

[パイプラインの作成]からはじめました。

パイプライン名を任意で設定しました。
IAMロールは新規で自動作成しました。
アーティファクトストアは、ダウンロード用ファイルが作成されるバケットを指定しました。

ソースは今回の書籍執筆用に作成していたCodeCommitのリポジトリ、ブランチを指定しました。
イベントはCloudWatch Eventsにしました。

ビルドステージはビルドステージをスキップから、スキップしました。

デプロイステージには、今回用に作成したバケットを指定しました。

以上で設定は完了しました。
内容を確認して作成完了しました。

CloudWatch Eventsを確認すると、ルールとイベントが作成されていました。

IAMロールは次のポリシーがアタッチされたロールが作成されていました。

信頼ポリシーはこちらでした。

署名付きURL生成

今回は、編集者さんにダウンロードしてもらうための署名付きURLを生成したいです。
有効期限としては、1週間欲しいです。
ですので、IAMロールを使用した場合は6時間なので、使用できません。
専用のIAMユーザーを作成しました。

Amazon S3 バケットの署名付き URL が、指定した有効期限より前に失効するのはなぜでしょうか?

IAMユーザーはマネジメントコンソールからログインする必要はありませんので、コンソールのパスワードは[無効]にしました。
ポリシーはインラインポリシーで、該当のS3オブジェクトキーに、GetObjectできるだけの権限です。
アクセスキーを発行しました。

SNSトピックを作成して、サブスクライバーには自分のEmailを設定しました。

Lambda

イベントトリガーはS3のプレフィックスとサフィックス指定で、イベントタイプはObjectCreatedです。
ランタイムはPython3.6です。

環境変数に、accesskeyとsecretを設定して完了です。

実行結果

Pycharmのターミナルからコミットしてみました。

CodePipelineが動き始めました。

成功で完了しました。

メールでもちゃんと署名付きURLが届きました。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , , ,

  関連記事

QuickSightのVisualizeをダッシュボード化して定期メール

「Backlogの実績工数をAmazon QuickSightで可視化してわかっ …

S3バケットポリシーで特定のVPCエンドポイント以外からのリクエストを拒否しつつメンテナンスはしたい

特定のVPCで実行されているEC2のアプリケーションからのリクエストだけを許可し …

Amazon Location Service入門ワークショップ-ジオコーディング

ジオコーディングにより住所を緯度経度に変換したり、逆に緯度経度から住所を求めたり …

AWS Summit Tokyo 2017 Day3 開場~基調講演~Dev Day Night

AWS Summit Tokyo 2017 参加2日目のDay3です。 基調講演 …

WordPressの年ごとのブログ投稿数を調べるSQL

毎年年末に使いそうなのでメモです。 [crayon-69e4b61f2364d4 …

Amazon CloudWatch RUMはじめました

新機能 – Amazon CloudWatch RUM をご紹介 2021年12 …

Cloud9初回アクセス時にCodeCommitのリポジトリを自動でクローンする

CloudFormationからCloud9環境を作成する際に、Reposito …

AWS Secrets ManagerのローテーションでLambda関数の管理が必要なくなりました

Amazon RDS と AWS Secrets Manager の統合を発表と …

RocketChatからOutgoing Webhookで呼び出されたAPI Gatewayでtokenをリクエスト検証する

本来はWAFでやったほうがよさそうですが、追加料金を発生させたくない場合にAPI …

Extend Switch Roles(Chromeのアドオン)で6つ以上のスイッチロール履歴

最近アカウントIDを忘れたりすることも多くなったので、切り替えに手間取ることがあ …