ヤマムギ

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教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。

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

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

 - AWS , , ,

  関連記事

VPCピア接続した先のVPCインターフェイスエンドポイントを使用する

VPC1とVPC2でピア接続しています。 VPC2にはKMSのインターフェイスエ …

ハンズオン: Cogtnio、API Gateway、Lambda、DynamoDB ~AWS認定デベロッパーアソシエイト(DVA-C02)~

このブログは2026年6月29日翔泳社さんより発売される「AWS教科書 AWS認 …

Cloud9でCodeWhispererを使用する

アクセス権限 Cloud9のEC2に設定するIAMロールのIAMポリシーで co …

EC2ハードウェア専有インスタンス(Dedicated Instances)を起動して請求書を確認してみました

EC2ハードウェア専有インスタンスのサイトには、次の料金と表記されています。 * …

AWS Backupで取得したAMIとスナップショットの削除

個人で使っているAWSリソースの断捨離をしてました。 Cloud9も複数アカウン …

WordPress W3 Total Cache のDatabaseCacheをAmazon ElastiCacheのmemcachedに格納する

このブログのアーキテクチャは現在こちらです。 データベースは、Amazon Au …

Amazon Pinpoint Workshopの1(Eメール)

Amazon Pinpoint Workshop ここ数年、AWS re:Inv …

EC2インスタンスを必要最小限のパラメータでCLIとSDKから起動する

EC2インスタンスをCLIとSDKから起動するデモで、パラメータを必要最小限にし …

Amazon Aurora Serverlessを使い始めてみました(1日経過しての課金結果も)

祝!!! Amazon Aurora ServerlessがGAになりました! …

AWS WAFの個別ルールを設定する

Web ACLを選択して、[Add my own rules and rule …