- 1. Twitter 画像付き自動投稿つくってみた【AWS Lambda】
- 2. 自己学習記録:Lambda で DynamoDB 連携
- 3. [初心者向け]たった50行のコードでTwitter Botを作成してみる
- 4. EventBridgeのサンドボックスを使いイベントパターンのチェックを行う。
- 5. The Lambda Function Returned An Error.の原因
- 6. SQS(FIFO) – Lambda構成の備忘録
- 7. AWS Lambda + Translate で翻訳機能使ってみた!
- 8. AWSの無料期間が終了するのでEC2からlambdaに移行した
- 9. 初心者がAWS lambdaを使ってみたお話
- 10. Lambda で どうしても大きい容量のライブラリが必要な場合
- 11. LambdaからTeamsへ通知するAPIを作る方法
- 12. AWS Lambda の 環境変数のTZ 指定してもよさそう
- 13. vpc 内 Lambda から Lambda を呼ぶ( invoke する)場合、public subnet や private subnet などのパターン別に呼べるか検証してみた
- 14. ソースコード変えてないのにLambdaをデプロイしたら急にエラーになって焦った話
- 15. RSSとAWS-Lambdaを使って自社ホームページにQiita記事を掲載する方法メモ
- 16. AWS Lambdaで.NET Core 3.1から.NET 6に移行したときにやったこと
- 17. AWSIOT: 既存の Lambda にトリガーをかけるトピックの作成
- 18. chatwork-webhook→AWS Lambda →Googleスプレッドシートでメッセージを記録する
- 19. 初心者エンジニアが『Hello, World!をサーバーレスで実行する』公式チュートリアルやってみた。
- 20. コンタクト追跡レコード(CTR)のFirehose~S3~経由のデータ連携 (後編)
Twitter 画像付き自動投稿つくってみた【AWS Lambda】
## あらまし
素数の日(=yy/mm/dd のdd 部が素数)[^1]にその素数にちなんだ画像を自動ツイートする機能をAWS Lambda で作成しました。[^1]:yyyymmdd の8桁が素数の場合を「素数の日」と呼ぶ流派もあるようです。
今日は23日です.素数の日おめでとう.
#pixelart #LINEスタンプ
https://t.co/Ya7euC5jMG
自己学習記録:Lambda で DynamoDB 連携
# 背景
業務で使うことになったので、ついていくために、おじいちゃんの自己学習記録。Node.js + AWS で少し見えてきた。
ということで、今度は DynamoDB + Lambda で少し遊んでみる
ゴールイメージは、
1. DynamoDB のテーブルAに値を追加すると
1. Lambda で追加内容に応じて、別テーブルに項目追加# まずは、DynamoDB のテーブル準備
[DynamoDB](https://ap-northeast-1.console.aws.amazon.com/dynamodbv2/home?region=ap-northeast-1#service) にて、テーブル作成とりあえず、適当に以下で作ってみた
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/b8aae7db-33ea-292d-abc9-6c93dd2bebdf.png)## 命名規則とデータ型
https://docs.aws.amazon.com/ja
[初心者向け]たった50行のコードでTwitter Botを作成してみる
## 目次
0. 概要
1. プログラミング初心者のアプリケーション開発の悩みとTwitter Botを題材にした理由
2. 今回、使用する各種サービスの説明とシステム全体の構成図(登場する用語の解説や構成の全体像の解説)
3. 実装
4. まとめ## 1. 概要
### 記事の目的
本記事は、プログラミング初心者向けに、Twitter Botアプリケーションの作り方を紹介します。記事の目的としては、`とにかくアプリケーションを動かしたい人に対して、簡単にアプリケーションが実装できることを理解してもらう`ことにあります。
この記事を通して、アプリケーション開発の第1歩目を踏み出してもらえたらと思います。
### 想定読者
多少言及がありましたが、想定読者は、`プログラミング初心者でアプリケーションとして動くものを作りたい人`としています。### 説明しないこと
– 利用したサービスの選定理由や使用する技術に対する詳細な解説
– 今回のアプリケーションに必要なアカウントの作成手順(参考にできそう記事を添付します)### 説明すること
– 今回使用する各種サービスの
EventBridgeのサンドボックスを使いイベントパターンのチェックを行う。
# はじめに
先日、`EventBridge`で`CloudTrail`に記録されたイベントを契機にするルールを作成した際、四苦八苦しながら少しだけサンドボックスの機能を使ってみたので、残しておこうと思います。# EventBridgeのサンドボックス機能とは
`EventBridge`のルールを「**イベントパターンを持つルール**」の形式で作成する場合、各サービス等から出力されるイベントに合致するように「**イベントパターン**」を記載して、イベントに合致した場合にルールを実行する動作となりますが、「**イベントパターン**」の記載方法があっているかを確認するためには実際にイベントを発生させて確認する必要があります。ただ、記載方法があっているかを確認するのに毎回イベントを発生させるのは非常に手間なので、2022年3月に新たに「**サンドボックス**」の機能が加わりました。
– 「[Amazon EventBridge がマネジメントコンソールでルールフィルタリングとイベント変換機能の強化を開始](https://aws.amazon.com/jp/about-aws/wh
The Lambda Function Returned An Error.の原因
## 背景
Amazon ConnectからLambdaを呼んでDynamoDBに値を保存する事を実現する上で注意する必要のある事を残しておく## 起きうる現象
### 1. Roleの設定ミス
必要に応じて、設定>アクセス制限>実行ロールからロールを作成して付与してあげる必要がある。### 2. returnでstatusCode:200を返していない事によるLambdaの失敗
下記エラーが発生する要因の一つとして、
“`
The Lambda Function Returned An Error.
“`
下記のようにreturn分で200を返していない事が挙げられる。
※[こちら](https://dev.classmethod.jp/articles/amazon-connect-calling-lambda-and-subscribe-lambda/ “クラスメソッド”)にも記載がある。
“`
return {
‘statusCode’: 200
};
“`
SQS(FIFO) – Lambda構成の備忘録
# SQS(FIFO) – Lambda構成の備忘録
AWS歴5-6年なのにSQSを一度も触ったことがなく。。。
AssociateやPro資格は全て取得したので、多少のドキュメントレベルの知識ならあると思うんですが。
触る経験がないことが心残りでした。そんな中、やっとSQSのキュートリガーを使ったLambdaの構成を検証する機会が舞い降りたので!
自分の備忘録がてらにメモを残します。## 構成
![screenshot.78.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236355/eaf3b382-52b8-ef0a-a5cf-ff65b38ccffa.jpeg)
## CFnコード(yaml)
### IAM Role
“`yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Description: [TEST] IAM Role for Lambda.
Parameters:
RoleName:
Type: String
AWS Lambda + Translate で翻訳機能使ってみた!
*この記事はawsハンズオンビギナーズをやってみて復習として作成しています
https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Serverless-1-2022-reg-event.html?trk=aws_introduction_page
今回は、Lambdaをテスト実行してその結果を英訳できるところまでをやります。
## 1 Lambda関数の作成
以下の画面から「関数の作成」ボタンをクリックします。
![スクリーンショット 2022-11-20 15.46.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686037/a3aec48b-ffb2-c6ec-24fb-e142114865ae.png)
~設定項目~
1,任意の関数名を入力
2,ランタイムの設定(今回はpython3.7にしました)
3,アーキテクチャは「x86_64」を選択![スクリーンショット 2022-11-20 16.00
AWSの無料期間が終了するのでEC2からlambdaに移行した
## EC2の無料期間が終了してしまう(まずい)
AWSのEC2を使って、アニメの配信通知をつぶやく[Twitterボット]()を動かしているのですが、私のアカウントのAWS無料期間が2022年12月で終わってしまうため、その後は毎月約3000円の料金が発生してしまいます(もったいない!)。
費用圧縮のためにLambdaに移行しようと作業していた所、つまづいた箇所がいくつかありました。
同じようなことで困っている方の参考になればと思います。### lambda(ラムダ)で出来ること
> Lambda は必要に応じて関数を実行し、1 日あたり数個から 1 秒あたり数千個のリクエストまで自動的にスケーリングします。課金は実際に消費したコンピューティング時間に対してのみ発生します。コードが実行されていない場合、料金は発生しません。引用元:[Amazon](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html)
## 1) フォルダごと圧縮しても動かない
lambdaでは、プログラムを「lambda_funct
初心者がAWS lambdaを使ってみたお話
初心者がAWS lambdaを使ってみた感想。
# AWS lambdaとは
Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを関数として実行できるサービスです。
関数とは・・・中学校の数学の関数、y=f(x)を想像してください。(懐かしい)
![Screenshot_20221119_161402.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/933408/8c016890-457d-7dcd-11e4-b3d3e2c6e15b.png)
左からxが来てます。真ん中の四角が関数のf(x)。で、右側にyが出力されています。
つまり、xが何らかのブラックボックスf(x)を通るとyに変換されて出てくるわけですね。この四角のf(x)の部分がlambdaです。
左のxはトリガー、右のyは送信先になります。
# サーバレスって言ったって・・・
lambdaはサーバーレスであるのが特徴で、EC2とかにデプロイする必要がありません。ですが、実際にはそれを意識させないだけで、どこかの仮想環境に関数が
Lambda で どうしても大きい容量のライブラリが必要な場合
Selenium を動かすときにはまったので、備忘録として。
https://valmore.work/aws-labmda-pytorch/
の内容の追加になります。
## Lambda のレイヤーでは対応できない場合
Lambda のレイヤーを使えば、250MB までのライブラリを比較的簡単にインストールできます。
ですが、250MB 以上になった場合は、どうしても EFS を使って EC2 も使って ライブラリを呼び出す必要があります。使い方は、
https://valmore.work/aws-labmda-pytorch/
に載っている通りなのですが、いくつかハマるポイントがあるので、それを説明します。
#### 2049番ポートからのアクセスを開放しているセキュリティグループ
EC2 のセキュリティルールで、インバウンド 2049・アウトバウンド全許可のルールを作りましょう。SSH も忘れずに。
#### Lambda への ポリシーのアタッチ
https://valmore.work/aws-lambda-s3/#lambda
にポリシーへのアタ
LambdaからTeamsへ通知するAPIを作る方法
# はじめに
今回はAWSのサービスの1つである、LambdaでAPIを作って実行したときにTeamsへ通知がくるようにします。## 開発環境
+ OS Windows 10(NVIDIA GTX 1650Ti,16GB RAM, i5-10300H CPU)
+ Visual Studio Code 1.73.1
+ Python 3.9## 実際にAPIを作ります!
### TeamsでWebhookを使ってURLを作成
作成したURL用いることでTeamsに情報を送信できるようになります。
[公式](https://learn.microsoft.com/ja-jp/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook)に載っているやり方でURLを作成します。1. 通知を出すチャネルから「・・・(その他のオプション)」をクリック
1. 「コネクタ」を選択したらWebhookを検索し、**追加**をする
1. 「構成」を選択
![MicrosoftTeams-image.p
AWS Lambda の 環境変数のTZ 指定してもよさそう
# 結論
環境変数TZは予約されてないらしい# 過去記事は信用しすぎるなって話
LambdaのタイムゾーンはデフォルトではUTCになっていて、タイムゾーンをAsia/Tokyoに変えたい
というのはよくある話だと思う。しかし、「Lambda TZ」などで検索すると
Lambdaの環境変数は予約されていて、それを上書きできるというのが今後もできる保証がないから環境変数で指定しない方がいいという記事が結構たくさんある。
しかし、AWSのドキュメントを見ると
> 以下の追加の環境変数は予約されていないため、関数設定で拡張できます。
> 予約されていない環境変数
> …
> TZ - 環境のタイムゾーン (UTC)。実行環境は、システムクロックを同期するために NTP を使用します。(2022/11/16時点)
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime
予約されてないってさ
AWSは更新があ
vpc 内 Lambda から Lambda を呼ぶ( invoke する)場合、public subnet や private subnet などのパターン別に呼べるか検証してみた
# はじめに
LambdaからLambdaを呼ぶ時、以下のパターンでアクセス可能かどうか検証しました。
– vpc 内の public 内にいる Lambda が呼ぶ / 呼ばれる
– vpc 内の public 内にいる Lambda が呼ぶ / 呼ばれる (vpc endpointあり)
– vpc 内の private 内にいる Lambda が呼ぶ / 呼ばれる
– vpc 内の private 内にいる Lambda が呼ぶ / 呼ばれる (vpc endpointあり)
– vpc 外にいる Lambda が呼ぶ / 呼ばれる# 構成図
以下のようにLambdaを呼ぶ側のLambdaと呼ばれる側のLambdaをそれぞれの2つずつ作成しました。
![スクリーンショット 2022-11-15 22.37.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/988747/13fc38dd-86a6-cdaf-3100-7288cd3a089b.png)# sg作成
まずsgを作成します
ソースコード変えてないのにLambdaをデプロイしたら急にエラーになって焦った話
# 起きたこと
GitHub Actionsで毎朝自動デプロイを行っているServerless FrameworkのAPIサービス(API Gateway + Lambda)がある朝急にエラーを吐くようになった。“`
TypeError: _convert_to_request_dict() missing 1 required positional argument: ‘endpoint_url’
“`# 試したこと、調査したこと
## どこでエラーになっているか
[PynamoDB](https://github.com/pynamodb/PynamoDB)というライブラリを使っていて、それが吐いているエラーだということは確認できた。
ただ、掘っていくのが大変で真因を突き止めるのに難航。
ライブラリのバージョンは固定していたのでライブラリが更新されているわけではないと判断。## エラーが起きてなかった時点の昨日のソースに戻して再デプロイして解消するか試す
もしソースの変更が原因なら解消するはずなのだが解消しなかった。不可解なことに時間差でほぼ同様のソースがデプロ
RSSとAWS-Lambdaを使って自社ホームページにQiita記事を掲載する方法メモ
# はじめに
RSSとAWSのLAMBDAを使って自社ホームページにQiita記事を掲載する方法のメモ
Qiitaに限らず、CORS制限のかかっているRSS取得全般で使えるのではないかと思う
本メモでは主に、
・QiitaのRSS取得ロジック(Lambda関数内)
・非同期でLambda関数呼び出し、XML形式からJsonへの変換(JS)
を記録している株式会社Growfit HP
https://growfit.co.jp/
# 目次
1. [前提条件](#Chapter1)
1. [調べて分かったこと](#Chapter2)
1. [解決方法](#Chapter3)
1. [参考文献](#reference)
# 前提条件
・QiitaのRSS(記事情報)を取得してHtmlファイル(ホームページ)に追記したい
・Html,Css,Javascriptの構成で、バックエンドの言語とサーバー非使用
AWS Lambdaで.NET Core 3.1から.NET 6に移行したときにやったこと
# はじめに
AWS Lambdaで.NET6がサポートされました。ですが.Net Core 3.1のMicrosoftのサポート期限が2022/12/13まで、AWS Lambdaにおける.Net Core 3.1のランタイムサポートは2023/1/20までとなっており、.NET Core 3.1から.NET 6への移行が必要になりました。
やってみると、項目によって`net6.0`だったり`dotnet6`だったりと、意外と紛らわしかったので忘れないようにメモしておきます。# やったこと
## ターゲットフレームワークの変更
まずは言わずもがなですが、プロジェクトファイルのターゲットフレームワークを変更します。
“`diff_xml:***.csproj
–netcoreapp3.1
+net6.0
“`## aws-lambda-tools-defaults.jsonの修正
AWS Toolkit for
AWSIOT: 既存の Lambda にトリガーをかけるトピックの作成
既存の Lambda 関数を lambdatodb とします。
## ルールの作成
TESTlambda というルールを作成
トピックは、test/topica“`bash:create_rule.sh
aws iot create-topic-rule –rule-name TESTlambda –topic-rule-payload file://new01.json
“`“`json:new01.json
{
“sql”: “SELECT x AS vX,y AS vY,z AS vZ FROM ‘test/topica'”,
“ruleDisabled”: false,
“awsIotSqlVersion”: “2016-03-23”,
“actions”: [
{
“lambda”: {
“functionArn”: “arn:aws:lambda:ap-northeast-1:123454806
chatwork-webhook→AWS Lambda →Googleスプレッドシートでメッセージを記録する
# 実現したいこと
chatworkの無料アカウントだと過去のメッセージが閲覧できなくなってしまったので、
閲覧期限が過ぎたメッセージを見返すために都度メッセージを記録する処理を作りたい。# はじめに
復習を兼ねて記事にしました。
スプレッドシートウェブアプリとlambdaを併用する意味はあまりないと思います。
lambdaを使いたくなったというのと最初はメッセージの保存先をスプレッドシートにするつもりがなかったので、
結局この形になってしまいました。
特にこだわりがなければスプレッドシートウェブアプリをwebhook urlとして使った方が早いかもしれません。# 環境
chatwork webhook
AWS Lambda
AWS API Gateway
python 3.9
Googleスプレッドシート
GAS
Windows 11# 実行手順
## 1 スプレッドシートウェブアプリの作成### [1] GASプロジェクトに以下コードを転記
“`
function doPost(e) {
const post = e.postData.contents
初心者エンジニアが『Hello, World!をサーバーレスで実行する』公式チュートリアルやってみた。
# はじめに
今回はAWS公式から出ている、『「Hello, World!」をサーバーレスで実行する』というチュートリアルをやっていきます。
この記事はAWSアカウントを作り終わってることが前提条件になりますので、下記URLから作成をお願いします。https://aws.amazon.com/jp/getting-started/hands-on/run-serverless-code/
### 自分のスペック
新卒でエンジニアになったが、Pythonに関しては簡単なものを読解、コーディングするぐらいの知識しかないです。
ほとんど初心者な人が今回はやっていきます。### 環境
* Windows10
* Chrome# 実行していく
### 関数作成までの手順
まず、AWSに入ってもらって左上の検索ボックスで「lambda」と検索して**Lambda**をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629918/4a9de036-5538-2b19-d56f-
コンタクト追跡レコード(CTR)のFirehose~S3~経由のデータ連携 (後編)
# 前提条件
Saleforce API Version : v55.0
serverlessrepo-AmazonConnectSalesforceLambda : 5.19.0
この記事は、2022/10頃に書かれています。AmazonConnect自体には、コンタクト追跡レコードをFirehoseに流す機能があるけど、連携用のLambdaは提供されてないけど、提供されてるLambdaを流用して、どうにかならないかな?というお試しした話の後編。
+ serverlessrepo-AmazonConnectSalesf-sfIntervalAgent-xxxxxx
+ serverlessrepo-AmazonConnectS-sfContactTraceRecord-xxxxxx設定に迷った時に参照するのは、上記2つの『Amazon Connect Salesforce CTI Adapter』で作成されるLambdaです。
# Lambdaの作成
Lambdaの一覧画面から作成画面へ遷移する。![Lambda_01.JPG](https://qiita-image