- 1. SAMのAutoPublishAliasでバージョンがうまく発行されないときの対処法
- 2. StepFunctionsでLambdaの並列処理をしたかった話
- 3. API Gatewayを環境構築しながら学ぶ
- 4. AWS LambdaでStableDiffusionを動かしたい
- 5. AWS CLI による Lambda Layer (Python) 作成・公開手順
- 6. AWS CDK初心者が爆速でS3とかlambdaとか「とりあえずそれっぽく」作る方法
- 7. Node.js で AWS Elemental Media Convert を使って動画変換してみた
- 8. KintoneからLambdaを経由してAmazon PinpointでMAを実装①
- 9. ラズパイとAWS IoTを使った見守りシステム自作で学んだこと(9)S3にuploadした映像の確認用web page
- 10. 【AWS】LocalStackを使ってみる
- 11. コピペでできるCloudWatch LogsからSlackに通知するコード
- 12. AWS Lambda を時刻起動する
- 13. Pulumiでチュートリアルを実施する。(APIGateway×Lambda)
- 14. AWS lambda nodeをローカルでdocker開発して、イメージデプロイする
- 15. AWS Lambdaに Funtion URLsを設定する
- 16. コンテナイメージから作るLambdaをSAMでデプロイ
- 17. FastAPI with Lambda + API Gatewayでサーバレスアプリケーションの作成
- 18. Amazon S3 → Amazon SQS → AWS Lambda を連携する
- 19. C#でラムダ式を書く
- 20. 保存したデータの分析
SAMのAutoPublishAliasでバージョンがうまく発行されないときの対処法
# はじめに
みなさま,こんにちは.
[株式会社オプティマインド](http://www.optimind.tech)にて,GISエンジニアをしている@tkmbnです.# 概要
SAMを用いたLambdaのデプロイ時にAutoPublishAliasを利用すると,うまくバージョンが発行されないときがありました.
対処法をいろいろと探っていたところ,良さそうな対処法を見つけたので,ご紹介いたします.# なぜ書いたか
SAMを用いて,Lambdaをデプロイしたが,以下のパターンのときに,うまくバージョンが発行されませんでした.
– Layerの中身のみ変更
– Lambdaの環境変数のみの変更手動で,バージョンを発行し,エイリアスに設定をすれば,やりたいことはできるんですが,
CanaryDeployが適用できないのが課題でした.# 本題
## 現状の環境
– SAM テンプレートの内容
– API Gateway
– Lambda (複数)
– 複数Lambda内で共通で利用するものを集めたLayer
– 環境
StepFunctionsでLambdaの並列処理をしたかった話
### やりたいこと
1. DBに保存されているトークンを取得し、トークンごとに複数の外部APIを実行したい。
1. APIの実行でエラーとなった場合に全体の処理を止めたくない。
#
### StepFunctionsにおける並列処理
StepFunctionsには並列処理を行うTypeとして、ParralelとMAPがあります。Parralelは同じ入力を使用してブランチごとに定義した処理を実行するのに対し、MAPは配列の要素ごとに同じ処理を実行するという違いがあります。
[Parallel](https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/amazon-states-language-parallel-state.html)
[MAP](https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/amazon-states-language-map-state.html)今回はParallelとMAPを組み合わせて使うことにしました。
#
###
API Gatewayを環境構築しながら学ぶ
「APIを実装する」ということが良く分からなかったため
一度環境構築してみることで理解を深めた際のメモです。
AWSの無料利用枠で試してます。
– **最終目標**AWS API Gateway と AWS Lambda で `Hello Nodejs!` を出力する
## 1. Lambda関数の作成
API Gatewayを作成する場合、API Gatewayのバックエンドを指定しないといけません。
そのバックエンドをLambda関数としたいので、その関数※を作成します。
※API Gatewayからのデータを受け取り、そのまま返すLambda関数– 関数の作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1665304/6ecae22d-8e8b-30a2-1400-0a27e6efaaa6.png)> – apiGateWayTestという関数名で作成
![image.png](https://qiita-image-store.s3.ap-northeast-
AWS LambdaでStableDiffusionを動かしたい
# はじめに
StableDiffusionが衝撃的です。
使用するにはGPUが必要という要件があったためAWS AWS SageMakerで動かしていたのですが、色々と試すのにGPU付きのインスタンスは費用が若干気になるところ。
ですが先日、CPUのみで動作する「stable_diffusion.openvino」が公開されました。
動作要件を見ると「AWS Lambdaでも動きそう?」→「動いた!」ので、一先ずここに共有します。本記事は以下に示す「stable_diffusion.openvino」をAWS Lambdaに移植したものです。
https://github.com/bes-dev/stable_diffusion.openvino
# 作成した画像サンプル
「墨田川」と「桜」のキーワードで作成した画像です。
AWS Lambda上で作成しましたが、1枚作成するのに4分前後かかっています。
![sd_2022-09-02-09-12-20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com
AWS CLI による Lambda Layer (Python) 作成・公開手順
# 手順
`python` という名称でディレクトリを作成します。(`python` でないと Lambda 上でライブラリをインポートできません)
“`sh
% mkdir python
“`ターゲットディレクトリを `python/` に指定して、利用したい任意のライブラリをインストールします。
“`sh
% pip install -t python/ requests
“`zip で固めます。
“`sh
% zip -r layer.zip python
“`S3 上にアップロードします。`${BUCKET_NAME}` およびプロファイルは自身の環境に合わせて読み替えてください。
“`sh
% aws s3 cp layer.zip s3://${BUCKET_NAME}/layer.zip –profile main
“`AWS CLI コマンド `publish-lambda-layer` [^1] を利用して Lambda Layer を公開します。
“`sh
% aws lambda publish-layer-ver
AWS CDK初心者が爆速でS3とかlambdaとか「とりあえずそれっぽく」作る方法
# 概要
AWSをwebから初めて使うときって特に気になりませんが、少し慣れてくると
「これいちいち所望のアプリ見に行って設定直すのめんどくせえ、、、!!!!」、と思いませんか?~~(思いますよね???)~~lambdaとS3を連携したりとかよくあると思うんですが、毎回どのlambdaだっけとか探すのめんどくさい。
これってなんとかならないの〜??
ってことで今回はAWS CDKを使って設計をコード化してまとめてAWSにあげてみます。
コードでインフラストラクチャを定義できるようになりましょう!初心者用なので、「とりあえずそれっぽく」を軸に話します。
イメージはこんな感じ。![スクリーンショット 2022-08-31 22.36.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/33a4f94e-95c2-1804-7b89-75ec53553c90.png)
# AWS CDK
そもそもAWSCDKとは?となる人もいるので公式から説明を拝借。
> AWS Clou
Node.js で AWS Elemental Media Convert を使って動画変換してみた
## 目的
ユーザがiPhone で撮った動画をweb上で再生できるように、mp4フォーマットに変換してみました。## システム構成
![Untitled Diagram.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821499/6ce38bee-3e5e-843b-7b92-7429ad5b45bf.jpeg)## 構築手順
1. S3 bucket `s3-media-convert` を作成します。(ユーザの動画は S3 の Presigned URL などを使ってこの bucket にアップロードさせます。)
2. node.js の lambda `trigger-media-convert` を作成します。
3. `trigger-media-convert` lambda に トリガーを追加します。
![Screen Shot 2022-08-31 at 16.44.02.png](https://qiita-image-store.s3.ap-northeast-1.
KintoneからLambdaを経由してAmazon PinpointでMAを実装①
## はじめに
KintoneでMA構築する上で、Lambdaを経由してAmazon Pinpointでメールの配信をする構築方法を説明します。
##### 1.Kintone(CRM)の顧客情報をLambdaで取得する
![kintone1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821360/5465a8af-b59d-d418-c630-1d037659ac2c.png)
##### 2.pinpointに対してendpointを登録する
![kintone2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821360/22e3df49-055b-d0f2-0fb3-c4aa0a8becaa.png)##### 3.AWS コンソールで配信環境を設定する
* 3-1.セグメントを作成する
* 3-2.メールのテンプレートを作成する
* 3-3.キャンペーンを作成して配信設定する配信グループで設定し
ラズパイとAWS IoTを使った見守りシステム自作で学んだこと(9)S3にuploadした映像の確認用web page
[(6)稿目](https://qiita.com/nsaito9628/items/8126fda477d61d542414)でuploadしたmp4ファイルの表示部になります。
mp4ファイルを確認する為のweb page Projectの構成と、ラズパイでイベント録画してS3にuploadした後にmp4ファイルを処理するLambda関数を説明します。
## web page Projectの構成
web page Projectの[リポジトリー内格納場所](https://github.com/nsaito9628/Monitoring-system-with-Raspberry-Pi-and-AWS)は/Monitoring-system-with-Raspberry-Pi-and-AWS/templateになります。CloudFrontオリジン(兼mp4のupload先)として構築した[S3バケット](https://qiita.com/nsaito9628/items/312112486ce61ba396ae#origins3bucket)のrootにはindex.
【AWS】LocalStackを使ってみる
2022/7/13にAWSの[LocalStackがバージョン1.0に到達してGAになった](https://localstack.cloud/blog/2022-07-13-announcing-localstack-v1-general-availability/)ので、簡単に使い方を確認したいと思います。
この記事では環境構築にコンテナを利用します。Docker, Docker Composeをご準備ください。# 環境
OSはWindows11です。
(Docker, Docker Composeが使用できるならば、その他OSでも動作するように考慮しているつもりですが、動作確認ができていないです…。)
![env.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1166959/83061e13-d52e-ed8a-4697-311324f886fb.png)
“`bash:Windows
$ ver
Microsoft Windows [Version 10.0.22000
コピペでできるCloudWatch LogsからSlackに通知するコード
Node.jsだと、レイヤーを導入するのが面倒なので、今回はPythonで。
1. 環境変数`WEBHOOK_URL`にSlackから生成したWebhook URLを設定してください。
2. トリガーのソースはCloudWatch Logsで、ロググループを指定しておきます。従来のSlack Appを使わないIncoming Webhookはレガシーな方法のようです。1Webhook/チャンネルになったんですね。
https://qiita.com/kshibata101/items/0e13c420080a993c5d16
なので、今回はSlack Appを使うことを前提にしたコードです。
CloudWatch LogsのPayloadを全て出力するようになってます。“`python
#!/usr/bin/python3.9
import urllib3
import json
import base64
import gzip
import oshttp = urllib3.PoolManager()
def lambda_handler(event, con
AWS Lambda を時刻起動する
EventBridgeの時刻起動ルールを作成して、指定時刻にAWS Lambdaを起動する方法を解説します。
## Lambda関数のアクセス権限を設定する
EventBridgeからLambda関数を起動できるよう、アクセス権限を設定します。
– [設定]から[アクセス権限]を選択します。
![image](https://user-images.githubusercontent.com/38905609/187126403-5a8ef77e-653d-4513-9d22-b136be7c2a3d.png)
– [アクセス権限を追加]を選択します。
![image](https://user-images.githubusercontent.com/38905609/187126658-ebfdeaea-677f-4eca-af19-14645c9b3346.png)
– ポリシーステートメントを指定します。
1. [AWS]のサービスを選択
1. サービスに[EventBridge]を選択
1. ステートメントIDは任意のIDを指定
1. プリンシパルは初期表示値
Pulumiでチュートリアルを実施する。(APIGateway×Lambda)
### はじめに
AWSのプロビジョニングツールとして有名なPulumi。最近話題になってきているので、チュートリアルを実施します!!### Pulumiとは
AWSやGCP、Azure等をデプロイするIaCツール。TerafformやCloudFormationが有名ですが、IaCツールとしてPulumiも有名です!!
![スクリーンショット 2022-08-28 21.00.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/2481e794-92be-f06e-b8a8-79ed00119463.png)### 前提条件
AWS profileを事前に設定しておいてください。### プロジェクトのセットアップ
“`shell:ディレクトリ構成
~/develop/purlumi/pulumi-lambda$ tree -I node_modules
.
├── Pulumi.dev.yaml
├── Pulumi.yaml
├── index.js
├── pack
AWS lambda nodeをローカルでdocker開発して、イメージデプロイする
https://aws.amazon.com/jp/builders-flash/202103/new-lambda-container-development/?awsf.filter-name=*all
AWS lambdaの開発にSAMを使用していましたが、ローカルでdocker開発して、そのままデプロイできるようになったらしいので手順の確認。
dockerのイメージ生成→AWSのECRリポジトリにPUSH→AWS Lambda にECRからデプロイ。
https://qiita.com/rei-ta/items/e86546130d157561ba8e
Dockerfile
docker-compose.yml
package.json
app.jsDockerfile
“`
FROM public.ecr.aws/lambda/nodejs:16
COPY app.js package*.json ./
RUN npm install
CMD [ “app.lambdaHandler” ]
“`ecrイメージでのdockerを作成。public.ec
AWS Lambdaに Funtion URLsを設定する
AppSyncから、cloudsearchを叩きたかったので、Lambdaに Funtion URLsを設定して、httpリゾルバで取得する形に。Lambdaリゾルバよりテストなどがしやすそうだったので。
ローカルでcloudsearchのLambda作成する形は以下。
https://qiita.com/rei-ta/items/e86546130d157561ba8e![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83911/2a6a1f95-3dc8-90a9-1745-5e6fa111b27f.png)
configurationから、Function URL (Lambda Function作成後の設定も可能)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83911/927cf5d2-ca9c-5536-2f11-ea9c0a4c45f9.png)
アクセス制御の
コンテナイメージから作るLambdaをSAMでデプロイ
# はじめに
以前、Microsoft365の監査ログを取得するLambdaをコンテナで作りました。
https://qiita.com/a_b_/items/84d6ae3cf8a21b8b332c
これを以下のページを参考に、Cloud9上でAWS SAM CLIでのデプロイにチャレンジしてみました。
https://aws.amazon.com/jp/builders-flash/202107/new-lambda-container-development-4/?awsf.filter-name=*all
# 所感
– AWS SAM CLIを用いると、デプロイまでの手間が減る
– 特に、ECRの作成や管理を考えなくてよいのが大変助かる
– 上記ページでは作っていますが、現時点では不要のようです
– (Cloud9上の)AWS Toolkitのウィザードでも試しましたが、launch.json を使ったデバッグ実行がうまくいかなかった
– AWS SAM CLIのナビゲーションで十分便利なので、GUIのウィザードを使わなくてもよいかも
FastAPI with Lambda + API Gatewayでサーバレスアプリケーションの作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556658/6ec16fbf-ad49-b975-cf6a-642ab0476747.png)
## はじめに
株式会社マイスター・ギルド新規事業部のヒツジーです。
弊社新規事業部では、新規サービスの立ち上げを目指して
日々、アイディアの検証やプロトタイプの作成などを行っています!技術の進歩は目覚ましいので、置いてかれないように新しい技術のキャッチアップにもいそしんでいます!
本記事では、FastAPI with Lambda + API Gatewayでサーバレスアプリケーションを作成する方法をご紹介します。
サーバレスアプリケーションには
– サーバーの管理が不要
– 使った分だけの支払いで済む
– 柔軟なスケーラビリティといったメリットがあり、新規サービスのプロトタイプ作成に向いていると思います。
本記事の手順通りに手を動かすと、さくっとREST APIを作れるようになりますよ!
## やりたいこと
FastAPIで作成
Amazon S3 → Amazon SQS → AWS Lambda を連携する
# はじめに
S3のイベントをSQSキューに入れて、Lambdaに渡すまでの操作をまとめました。
![Screen Shot 2022-08-25 at 22.06.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1809963/d23f455f-42ab-5fd7-4bf8-13b7129ad88a.png)# やること
– Lambda関数の作成 → SQS権限設定
– SQSキューの作成 → Lambdaトリガー設定
– S3バケットの作成 → イベント通知設定# 1. Lambda関数の作成
まずはLambda関数を作成します。
関数名:test-202208(任意のもの)
ランタイム:Python3.9その他はデフォルト設定のまま「関数の作成」
![Screen Shot 2022-08-25 at 20.29.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1809963/0d5abe
C#でラムダ式を書く
# 1. はじめに
* C#でラムダ式を書く方法を1から整理する。
* まずはラムダ式を使用しない書き方から初めて、最終的にラムダ式に書き換えるまでを行う。
* ラムダ式をいきなり覚えようとすると難しが、過去の遍歴を見ると理解しやすいと思う。# 2. ラムダ式を使用しない場合
サンプルとして配列にある文字に対して、指定の長さのものだけを抽出する。“`c#
// メイン処理
var values = new string[] { “1”, “22”, “333”, “4444”, “55555” };
var result = GetValue(values, 4);
Console.WriteLine(string.Join(“,”, result));// メソッド
private string[] GetValue(string[] values, int len)
{
var result = new List();
foreach (var val in values)
{
if (val.Length >=
保存したデータの分析
# データ分析との連携
S3内のオブジェクトやオブジェクトの中身に対し、**データ分析**を行う機能がある。
**S3 Select**と**Amazon Athena**は、CSVやJSONのような構造化されたテキスト形式のデータに対して、SQLのSELECT文を実行する**クエリ機能**。
**Amazon Redshift Specutrum**も同じ機能だが、大量のデータを処理できる。
# データ分析サービス
Amazon S3には、ログやIoT機器から収集したデータなど、後に分析したいデータも含まれるので、データ分析サービスとの連携が用意されている。
S3 SelectとAmazon Athenaは、S3バケットに格納したデータに対して分析するサービス。一方で、Amazon Redshift Spectrumは、S3バケット以外に置いたデータも分析できる。
## S3 Select
S3 Selectは、S3の機能で保存されている1ファイルのデータに対して、SQLを使って、集計や検索ができる機能。
CSVファイルやJSONの他、ログに使われるApache Parquetフォー