- 1. AWSの料金を毎日Slackに通知する
- 2. ヘキサゴナルアーキテクチャを使ってドメインモデルをAWS Lambdaファンクションで実装してみた
- 3. AWS SAMのDynamoDB Local接続のお試し(golang)
- 4. Lambdaのデプロイ方法を調べた
- 5. AWS Lambdaを利用したLINEbotハンズオン〜S3に写真保存〜
- 6. CircleCIを使ってコンテナイメージをAWS LambdaへデプロイするCI/CD環境を構築してみた
- 7. AWS Lambdaからsuds-py3を使ってSOAP API連携をしてみた
- 8. LambdaでWindows インスタンスの Nitro 世代移行を自動スケジューリング化してみた
- 9. 「適格請求書発行事業者公表システムWeb-API機能」利用の覚書
- 10. 【AWS】【ハンズオン】各10分くらいで、Serverless Architecture(Lambda、API Gatway)+RDSを触ってみる
- 11. AWS APIGatewayからLambdaへリクエストヘッダー情報を受け渡す
- 12. AWS 同一VPN内のLambdaからRDSへ接続を行う
- 13. AWS Lambda S3 の画像ファイルをブラウザに表示する
- 14. Shopify WebhookをAPI GatewayからLambdaで処理する
- 15. AWSアカウントを跨いで利用料金を取得する
- 16. AWS Lambdaを利用したS3連携ハンズオン
- 17. 【AWS】オプトインリージョンへのS3アクセス時の注意
- 18. Serverless Frameworkで画像(バイナリ)をダウンロードするAPI
- 19. AWS(api gateway, lambda, SES, S3)を用いてお問い合わせフォーム付きウェブサイトを作成する
- 20. Cloud Formationを使ってGolang製LambdaのCICDをGitHub Actionsで構築
AWSの料金を毎日Slackに通知する
クラウド破産が起きないようにAWSの料金を毎日通知するやつを作りたかったのですが忙しくて…
重い腰を上げてやっとです。LINEに通知してもでもいいのですが手軽なのでSlackで行きます。
Slackシリーズ結構やってきましたので他の記事も参考にhttps://qiita.com/ymktmk_tt/items/ef90884d94190f7ae951
https://qiita.com/ymktmk_tt/items/54920620e1e99389f36c
https://qiita.com/ymktmk_tt/items/06824d7d325e102b0e2e
## 今回のアーキテクチャ
![aws-slack (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/c1d4ad46-28b1-702f-ee36-325b1f08b0ef.png)
## Lambdaを作成
今回動かすコードを貼り付けましょう
“`python
import datetim
ヘキサゴナルアーキテクチャを使ってドメインモデルをAWS Lambdaファンクションで実装してみた
## はじめに
2021年11月20日から21日にかけて、[JAWS Pankration 2021 ~Up till Down~](https://jawspankration2021.jaws-ug.jp/)が開催されました。筆者はその中で DDD on AWS Lambdaというタイトルのセッションを担当しました。このセッションでは、ヘキサゴナルアーキテクチャを利用してドメインモデルをAWS Lambdaファンクションに実装する方法、また制御の反転(IoC)を利用してユニットテストを容易にする方法について紹介しました。
## この記事を書いたのは
今回、JAWS Pankrationは新たな試みとして、広く海外のコミュニティーメンバーにも参加してもらうために、全てのスライドを英語で記述しポケトークを利用して逐次通訳しながらセッションを行いました。海外のコミュニティーメンバーにも見てもらいたかったので、このために実装したサンプルアプリケーションのリポジトリの[README.md](https://github.com/afukui/jaws-pankration-ddd-lam
AWS SAMのDynamoDB Local接続のお試し(golang)
#はじめに
最近AWSのサービスを利用してシステム構築することに・・・
lambdaをメインにしたwebapiの開発をローカルで試した結果をまとめていきます。
本記事はローカルでAWS SAMを利用して、dynamodbとの連携までやります。
次の記事ではデプロイ周りをやります。#利用していきます!
##今回使用するツールなどのバージョン
– Windows 10 Pro:21H1
– WSL2:Ubuntu 20.04 LTS
– vscode:1.61.2
– Docker:20.10.9
– Go: 1.17.3##AWS SAM CLI のインストール
Homebrewを利用してAWS SAM CLIをインストールします。
AWSの公式サイトに[AWS SAM CLI のインストール](https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html)の手順がありますので、そちらを参考に。
※git、
Lambdaのデプロイ方法を調べた
## Lambdaの基本
AWS Lambdaは、AWSの計算リソースの一つであり、あらかじめ設定したトリガーが発火した時のみ実行される関数を構築することができる。このような仕組みは、サーバレスアーキテクチャと呼ばれる。
**特徴**
– 必要な時だけ起動する。
– 実行した時のみ課金される。
![スクリーンショット 2021-11-21 2.09.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324326/8603d792-606b-2d90-7606-b8601ed9487f.png)
コンソール上で関数の編集、テストが実行できる。
## デプロイ方式
Lambda関数をデプロイする方法には、以下の3通りがある。
1. コンソール上で直接コードを編集し、デプロイする。
– ⭕️ デプロイした状態でのテストが簡単にできる。
– ❌ 大規模なアプリは開発しづらい。
– ❌ gitなどでコードを管理することができない。
– ❌ 依存パッケージなどが
AWS Lambdaを利用したLINEbotハンズオン〜S3に写真保存〜
# はじめに
今回はLINE APIを利用した「S3に写真保存」botの作成をしていきます。動きとしてはLINEのMessaging APIを利用して写真を送信します、写真をきっかけとしてAWS API GatewayがLambdaを起動させて、Lambdaに記述されているコードの動作(S3に写真を保存して保存された場合返信する)を行います
## 制作意図
9月に結婚式を挙げた友人用に考えた構築のハンズオンです(一部異なる点ありますが、ほぼほぼ)。
結婚式当日に参加した人がQRコードからLINEのお友達登録をしてもらうことで、当日撮影した写真を枚数・保存期間を気にせずS3に投げ込み、別途構築した2人のオリジナルHPから投げ込んだ写真を全員が閲覧できることを考えました。ちなみに後日でも、LINEから写真を投げるだけでOK。
実際の構築では動画・メッセージも送れるようにしていましたが、今回は写真だけに絞ってハンズオンしていきます。# 構成図
![スクリーンショット 2021-11-19 17.24.14.png](https://qiita-image-store.s3.ap-n
CircleCIを使ってコンテナイメージをAWS LambdaへデプロイするCI/CD環境を構築してみた
# 1.はじめに
2020年12月にAWS Lambda はコンテナイメージのサポート開始を発表しました。
ECSやEKSといったコンテナ系のサービスだけでなく、Lambdaでもコンテナネイティブな開発環境を作ることができます。これまでのLambda関数のデプロイ方法は下記の通りです。
– マネージメントコンソールからソースコードを編集する
– ZIPファイルをアップロードする
– Amazon S3に配置したZIPファイルをデプロイする上記の3つに加えてECRに配置したコンテナイメージをデプロイする方式が利用可能になりましたので、
こちらを利用した開発ワークフローをCI/CD環境をCircleCIで構築してみました。—
# 2.本記事の対象者
– CircleCIを利用したい方
– コンテナイメージをLambdaにデプロイしたい方—
# 3.CircleCIとは
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2295139/97c71d13-8ce
AWS Lambdaからsuds-py3を使ってSOAP API連携をしてみた
RESTにとって変わられがちですが、ちょっと触る機会があったので、
表題の件を簡単かつざっくり解説していきます。なお連携対象はOracle B2C ServiceのSOAP APIの想定です(http://documentation.custhelp.com/euf/assets/devdocs/unversioned/Connect_KFAPI/Default.htm)
##環境
Python3.8
AWS Lambda プロキシ統合ありライブラリ
suds-py3 1.4.4.1##準備
まずはライブラリをインストール
“`
$ pip3 install suds-py3
“`##実装
内容は連携するAPIに準じて読み替えてください。
インポート関係はこんな感じです。“` python3
import os
import json
from suds.client import Client
from suds.wsse import *
from suds.sudsobject import asdictWSDL = os.environ[
LambdaでWindows インスタンスの Nitro 世代移行を自動スケジューリング化してみた
# はじめに
r4からr5など、XenベースからNitroベースの最新世代へのEC2インスタンスタイプの変更時には
ドライバーのアップグレード等ダウンタイムが生じるOS内部作業が伴います。必然的にダウンタイムが長くなるため平日日中帯を避けたいケースも多いのではないでしょうか。
Lambda(python)で自動スケジューリング化に挑戦してみました。# 環境
EC2インスタンスタイプ:r4.largeからr5.largeへ変更
EC2のOS:Windows server 2012 R2
Lambdaで使うランタイム:Python3.9#作業全体像
今回の作業は以下ドキュメントに沿って行います。https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/migrating-latest-types.html#auto-upgrade
1. AWS PV ドライバーのインストールとアップグレード
1. ENA のインストールとアップグレード
1. AWS NVMe ドライバーをアップグレード
1. EC2Con
「適格請求書発行事業者公表システムWeb-API機能」利用の覚書
#はじめに
令和5年10月1日からいわゆるインボイス制度と呼ばれたりもする適格請求書発行方式が始まります。内容はともかく、今まで通りに商売を続けるためには届け出をして「登録番号」をとらなければならないようです。この登録番号は今まであった13桁の「法人番号」の頭にTを付けた14桁の番号で、法人番号同様に公表されるのです。https://www.invoice-kohyo.nta.go.jp/web-api/index.html
#環境準備
1. 上記のサイトから申請できるアプリケーションIDを準備しますが、法人番号APIで使ったアプリケーションIDがそのまま流用できるそうなので、そのまま利用しました。https://qiita.com/talomina/items/3af845b3eec511ab55fe
1. Python環境を準備します。今回もAmazon lambdaを利用しました。
#実装
作成したコードです。登録番号を元にAPIから取得した会社名や住所を表示します。法人番号との主な違いは下記のようなところです。
* 法人番号は全て頭にTを付けて登録番号に変更する
【AWS】【ハンズオン】各10分くらいで、Serverless Architecture(Lambda、API Gatway)+RDSを触ってみる
だいぶご無沙汰しています。
どーも、のぶこふです。「あれ、タイトルがAWSだけど、Blockchain関連じゃなかったんかワレ」と思った方、鋭いですね。
今年から弊社はAWSにも注力していて、ご多分に漏れず私もAWSを触る機会がが増えてきました。
最近、社内向け勉強会(現地とZoomのハイブリット開催)にて、資料を作成したので、こちらにも投稿します。各詳細は、[Github](https://github.com/nobkovskii/aws_handson/tree/main/01_serverless-architecture)を参照していただくとして、Qiitaでは寄り道に逸れた内容とか勉強会の振り返りを書いていこうと思います。
あ、Blockchain(Cordaとか)はBlockchainで、EKS上にNode立てたりしてますので、遠からず。
“`
(゚∀゚)アヒャ
“`### 全体像
構成図としては、下記の通りです。
Serverlessな構成としては、RDSを使っていることを除けば、ごくごく一般的な内容です
AWS APIGatewayからLambdaへリクエストヘッダー情報を受け渡す
#はじめに
APIGatewayからLambdaへリクエストヘッダー情報を受け渡す必要があり、
その際に行った実装方法とテスト方法について、備忘録として記載します。前提
・本記事では、下記の赤矢印①〜②の実装方法について記載する。
![API_lambda_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1255237/6b5f27ad-2d81-d9fb-a9c0-7a637487486b.png)#目次
[1. Lambda関数の作成](https://qiita.com/drafts/19dba5d3ef8955f3b2d1/edit#1-lambda%E9%96%A2%E6%95%B0%E3%81%AE%E4%BD%9C%E6%88%90)
[2. APIGatewayの作成](https://qiita.com/drafts/19dba5d3ef8955f3b2d1/edit#2-apigateway%E3%81%AE%E4%BD%9C%E6%88%90)
[(おまけ1)Lambd
AWS 同一VPN内のLambdaからRDSへ接続を行う
#はじめに
Lambda関数からRDSデータベースへ接続を行う機会があり、
その際に実装を行った方法について、備忘録として記載します。前提
・RDSデータベースの作成・設定済みとする。
・本記事では、下記の赤矢印①〜②の実装方法について記載する。
![lambda_rds_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1255237/a9374b91-aae1-77fd-6445-06bd8dffc75f.png)#目次
[1. Lambda関数の作成](https://qiita.com/drafts/d8bb6608d1343770b099/edit#1-lambda%E9%96%A2%E6%95%B0%E3%81%AE%E4%BD%9C%E6%88%90)
[2. Lambda関数のソースコード実装](https://qiita.com/drafts/d8bb6608d1343770b099/edit#2-lambda%E9%96%A2%E6%95%B0%E3%81%AE%E3%8
AWS Lambda S3 の画像ファイルをブラウザに表示する
# 初めに
Lambda と API Gateway を使用して、ブラウザでクリックボタンを押すと S3 にある画像ファイルをブラウザに表示する方法を実装する手順を説明します。
# S3 に画像ファイルを保存する
表示したい画像ファイルを保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/139ef17c-8483-eea0-48c9-ae28cd5f8ebb.png)
# Lambda 関数を作成する
以下の Lambda 関数を作成し、Lambda関数のロールに S3 のアクセス権限を付与します。検証だけでしたら Lambda 関数作成時のロールのインラインポリシーに S3 のフルアクセス権限を付与するのが簡単です。
“`python
import base64
import boto3
import jsons3 = boto3.client(‘s3’)
def lambda_handler(event, context):
pr
Shopify WebhookをAPI GatewayからLambdaで処理する
#概要
備忘録、ハマったポイントを重点的に書く。
ShopifyのWebHookを利用して、注文があった際に注文内容を受信する。
この記事では、Shopifyへ即レスポンス返す方法や、webhookの認証についてまとめる。# 前提
Shopifyの**プライベートアプリ**として運用します。
公式にアプリとして使用する場合は、Shopify-> APIgateway->Lambdaではなく、Shopify-> EventBridge -> Lambdaという形を使用した方が良い為、下記の公式ブログ記事を見て下さい。[ShopifyアプリMechanicの開発者はEventBridgeでどのようにスケーリングしたのか](“https://www.shopify.jp/blog/partner-event-bridge-scaling”)
# 1. Lambdaでの処理
webHookを受信した時の処理されるLambda関数を作成します。
### Shopify WebHookを3秒以内に返す
Shopify WebHookを**3秒以内にレスポンスを返す必要があります。**レス
AWSアカウントを跨いで利用料金を取得する
`Assume Role` を使ってAWSの別アカウントから利用料金を取得します。
仕組みは次のようなイメージになります。
① で `STS` の `AssumeRole` を叩くと、一時的な**アクセスキー、シークレット、セッショントークン**が払い出されます。あとはこれを使うだけです。# AWSアカウントBにロールを作成
## ポリシー作成
今回はコスト参照するだけなので、以下のようなポリシーを作ります。
“`json:GetCostAndUsagePolicy
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “VisualEditor0”,
“Effect”: “Allo
AWS Lambdaを利用したS3連携ハンズオン
## はじめに
今回はAmazon S3にオブジェクトを保存した際にAWS Lambdaが起動する仕組みを作成します。動きとしてはS3に手動でオブジェクト(sample.jpg)を保存した際に、Lambdaが起動して”オブジェクトが保存されました”というログを表示する処理を行います。
## 構成図
![スクリーンショット 2021-11-13 8.42.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694365/e8a18378-b0af-082b-1254-293e4bc54dd8.png)## 実装
#### 1.Lambdaを設定する
##### 1.1 AWSマネジメントコンソールからLambdaを検索する
1.検索ウィンドウよりLambdaと打ち込む
![スクリーンショット 2021-11-13 8.52.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694365/25daf44c-393
【AWS】オプトインリージョンへのS3アクセス時の注意
# これは何?
とある事情でLambdaからS3へファイルを転送する構成で、中東(バーレーン)リージョンに導入する必要がありました。
が少し上手くいかなかったのでメモです。## 状況
いつも通りTerraformにて同じリソースをデプロイした。
しかしながら、S3へログを転送するLambdaでエラーが発生。## エラー内容
・エラー内容は以下、調べてみるとリージョン系のエラーっぽい。“`
2021-09-02T10:58:14.881Z fe9ac618-e5a7-46ad-b53e-4e35607db33a ERROR Cannot put object!.
2021-09-02T10:58:14.821Z fe9ac618-e5a7-46ad-b53e-4e35607db33a ERROR IllegalLocationConstraintException: The ap-northeast-1 location constraint is incompatible for the region specific endpoint this request w
Serverless Frameworkで画像(バイナリ)をダウンロードするAPI
# まえがき
Serverless FrameworkとAPI Gatewayで画像をダウンロードするAPIを作ってみました。
ネット上の情報だとうまくいかなかったので、試行錯誤を繰り返すことになり大変でした。# ソース
https://github.com/t-mine/qiita/tree/master/serverless-image-dl-api
# 手順
## Serverless Frameworkインストール
“`
npm install -g serverless
“`## プロジェクト作成
“`
serverless create –template aws-nodejs –name serverless-image-dl-api –path serverless-image-dl-api
“`## Serverless FrameworkにAWSの認証情報を設定
AdministratorAccessポリシーを付与したIAMユーザーを用意して、設定します。“`
serverless config credentials –pr
AWS(api gateway, lambda, SES, S3)を用いてお問い合わせフォーム付きウェブサイトを作成する
# AWS(api gateway, lambda, SES, S3)を用いてお問い合わせフォーム付きウェブサイトを作成する
こんな感じでシンプルに件名とメッセージだけ入れてメールで送信します。
![rapture_20211110233814.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356208/bfde2080-2972-f579-4fd0-a459887546f9.jpeg)
AWSのapi gateway, lambda, SES, S3を用いて、S3上にアップロードした静的ウェブサイト上からメールを送信したので、その手順を記録しておきます。大まかに以下のような手順となります。
* SESへのメールアドレスへの登録
* lambdaを用いてメールの送信用の関数を作成(今回はPythonで行った)
* api gatewayへのlambda関数の登録
* apiを叩くためのwebサイトの作成
* 作成したwebサイトをS3上にアップロードし、公開する。## SESへのメールアドレ
Cloud Formationを使ってGolang製LambdaのCICDをGitHub Actionsで構築
## 以下の記事を参照して頂ければと思います
https://note.com/shift_tech/n/n28a0b7e56680
**※※Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です**
## 補足
ソースコード全体は以下です。https://github.com/yuta-katayama-23/Go/tree/cloudformation