Posted: 2026-03-16
| Tags:
deploy ,
iam ,
lambda ,
lambroll
lambrollとは fujiwara/lambroll は、AWS Lambda関数のデプロイを簡単に行うための軽量デプロイツールです。
デプロイに必要なIAM権限 lambrollを使ってLambda関数をデプロイする際、GitHub ActionsやCI/CDパイプラインで実行する場合に必要なIAM権限の一覧です。
権限一覧 {
"Version" : "2012-10-17" ,
"Statement" : [
{
"Effect" : "Allow" ,
"Action" : [
"lambda:CreateFunction" ,
"lambda:GetFunction" ,
"lambda:GetFunctionConfiguration" ,
"lambda:InvokeFunction" ,
"lambda:ListTags" ,
"lambda:TagResource" ,
"lambda:UntagResource" ,
"lambda:UpdateFunctionCode" ,
"lambda:UpdateFunctionConfiguration"
],
"Resource" : [
"arn:aws:lambda:ap-northeast-1:123456789012:function:your-function-name"
]
}
]
}
各権限の説明 必須権限 権限 用途 備考 lambda:CreateFunctionLambda関数の初回作成 既存関数の更新のみの場合は不要 lambda:GetFunction既存関数の情報取得 lambrollが関数の存在確認に使用 lambda:GetFunctionConfiguration関数設定の取得 現在の設定との差分確認に使用 lambda:UpdateFunctionCode関数コードの更新 デプロイの主要な処理 lambda:UpdateFunctionConfiguration関数設定の更新(環境変数、タイムアウトなど) function.jsonの設定を反映 lambda:ListTags関数のタグ一覧を取得 重要 : lambrollがfunction.jsonのTagsと既存タグを比較するために必須lambda:TagResourceタグの追加 function.jsonにTagsフィールドがある場合は必須 lambda:UntagResourceタグの削除 既存タグを削除する場合に必要
オプション権限 権限 用途 備考 lambda:InvokeFunctionLambda関数の実行 デプロイ後のテスト実行を行う場合に必要
よくあるエラーと対処法 Error: failed to deploy function configuration: failed to list tags of
arn:aws:lambda:...: operation error Lambda: ListTags,
api error AccessDeniedException: User is not authorized to perform:
lambda:ListTags on resource
原因 : lambrollはfunction.jsonのTagsフィールドと既存のタグを比較するため、lambda:ListTags権限が必要です。
Read more... Posted: 2018-08-21
| Categories:
AWS
| Tags:
AWS ,
CloudWatch ,
lambda ,
MediaLive
背景 MediaLive ですが、いろいろなエラーを通知してくれます。
やれ「RTMP 接続が切れたよ」とか「オーディオ入力 or ビデオ入力が無いよ」とかですね。
通常、ライブ配信が始まる前は当然、MediaLive への入力は無いはずなので、通知は構わないのですが、
ライブ配信中に出ると、それはもうトラブルシューティングの情報の一つとして重要なものになります。
( というか当初、エラーは出てるっぽいし、挙動はおかしいんだけど、どんなエラーが出てるか分からないケースがあって窮地な時がありました )
今は管理画面の[ channels ]->[ 目的のチャンネル ]->[ Alerts ]から確認できます。が、ログとして残しておくのは良い事だと思います。
このエラー出力のフォーマットは決まっている訳ではなく、たまに変わります。ので
『あー、エラー出力が変わったからアラートが上がらなくなったのね』、という事がログを残しておくと分かります。
手順 WebUI SNS トピック作成 SNS のページ( https://ap-northeast-1.console.aws.amazon.com/sns/ )を開く
[ トピック ]->[ 新しいトピックの作成 ]->トピック名の入力、私は[ MediaLiveEvent ]、表示名[ MediaLiveEvent ]と入れてみた
作成したトピックの ARN をコピペ
arn:aws:sns:ap-northeast-1:123456789012:MediaLiveEvent
同じ SNS 内の左側メニュー ->[ サブスクリプションの作成 ]
[ トピック ARN ]に先程作成した MediaLive のトピックの ARN を入力
プロトコル メール(ほかにも lambda とかから Slack に送信できたりする)
エンドポイント : 自分のメールアドレス
はじめてのアラートメール設定の場合、AWS から確認のメールが飛ぶ
[ AWS Notification - Subscription Confirmation ]という件名のメールがあったらメール本文内のリンクをクリック CloudWatch cloudwatch のページに移動* [ イベント ]->[ ルールの作成 ] [ イベントパターン ]になってること [ カスタムイベントパターン ]に変更
カスタムイベントパターンの内容としては下記を入力 {
"source": [
"aws.medialive"
]
}
右側の[ ターゲットの追加 ]->[ SNS トピック ]に変更->[ トピック ]はプルダウンメニューから先程、作成した SNS のトピックを選択 [ 設定の詳細 ] ルールの定義 名前: 任意 説明: 任意 [ ルールの作成 ] メールボックスを確認 CLI 参考: SNS をコマンドラインから設定する : 電子の密林を開拓する
Read more... Posted: 2018-01-30
| Categories:
AWS
| Tags:
lambda
上限値 Lambda 関数の同時実行 - AWS Lambda
初めてのLambda 初めてのJavaScript、初めてのAWS Lambda
ブラウザから直接invokeする、という方法
AWS Lambdaのコードをローカルで実行する この方法は導入した方が良さそう。デバックスピードを上げられる。
AWS Lambdaのための関数のローカル開発とテスト
handlerに渡ってくるeventとcontextというオブジェクトについての補足
event: 実際に渡ってくるイベントのデータ(S3のアップデートとかKinesisのレコードとか)。
context: Lambda functionの呼び出しコンテキスト。done()というAPIを呼び出すと関数が終了するのだが、コードをちょっと追いきれてないのでとりあえず単純にreturnするだけな感じにstub化。ちなみにcontextオブジェクトのダンプは以下のとおり。done()の中で呼び出されているpostDone()は後で追ってみる。
AWS Lambdaの関数をnpmでパッケージ管理
CLIで使う http://qiita.com/toshihirock/items/8d06a524df79e7bb675c
Role作成 function作成( ファイルのアップロード ) Scheduleイベントで EC2を自動起動終了
Amazonのサイトの説明、aws-cliで設定している
ユーザがEC2を起動 => CloudTrailがEC2起動を検知してS3バケットにログ記録 => Lambdaファンクション起動 => ログから実行ユーザを特定してEC2にタグ付け LambdaでEC2作成者をタグ付けする
AWSへの接続に使う AWSのリファレンス を見て、左側のメニューから使いたいサービスをクリック
トラブル集 node.jsでLambdaを実装した時のトラブル&解決策集
Read more... Posted: 2017-08-21
| Categories:
AWS
| Tags:
lambda ,
SQS
API リファレンス Class: AWS.SQS — AWS SDK for JavaScript
送信/受信/削除 AWS SDK for Node.js を用いた SQS の操作 – ゴミ箱
FIFO になって情報古くなってる面もあるが有益な情報 【AWS】SQS をただただ触ってみただけの話 - ニクニクドットミー
Amazon SQS を利用する前に抑えておくべき 7 つのポイント - Qiita
Amazon SQS を使う前に知っておきたい基本的なこと - Qiita
Schoo の非同期パイプライン処理について - Qiita
『ロングポーリングして』という話は下記でも触れてる(一番下の方)
フレクトのクラウド blog(New): lambda から lambda を起動するリレー方式 SQS コンシューマ
ショートポーリングの場合、キュー内のメッセージ数が少ない(1000以下など)場合、
キュー内のメッセージ数で重み付けされたサンプル数のサーバにしか問い合わせにいかないため、
MaxNumberOfMessagesに指定した数より少ないメッセージしか返ってこず、
キュー内のメッセージ数が極めて少ない場合、メッセージが返却されないことがあるため、
繰り返しreceiveMessageを発行する必要がある。
という理解であってるんですかね?
ロングポーリングの場合はどうなんでしょうか? 次の記述が見つかりました。
どうやらロングポーリングの場合、上記の問題は発生しないようです。
(receiveMessageのWaitTimeSecondsを1以上にすると、ロングポーリングになる)
Lambdaはコンピューティング時間で課金されるため、なるべく「待ち」の時間は減らしたいところですが、ショートポーリングで1,2件づつメッセージを処理するよりは効率が良さそうです。
ログポーリング必須…
ロングポーリングを利用する(これは必須。劇的にリクエスト数が改善されます)
ロングポーリングは管理画面から設定できるので簡単。
送信側はバッチリクエストを利用すると良い(SendMessageBatch)
受信側も複数メッセージを一度に受信すると良い(MaxNumberOfMessages)
FIFO に関する情報 【新機能】Amazon SQS に FIFO が追加されました!(重複削除/単一実行/順序取得に対応) | Developers.IO
FIFO/重複排除のイメージがつかみやすい
Read more... Posted: 2015-05-20
| Categories:
AWS
| Tags:
AWS ,
lambda ,
SNS
lambdaネタ SNS + Lambda + Slack でアラート通知を受け取る - Qiita
障害時でも まずPush通知がされるまでの流れを把握 http://dev.classmethod.jp/cloud/aws/sns-mobile-token/
この中のフローが非常に参考になる。
大規模Push配信環境 メルカリの例 ハイパフォーマンスGaurun〜メルカリの大規模プッシュ配信を支えるミドルウェア〜 - Mercari Engineering Blog
Push通知が届かない場合 http://faq.growthbeat.com/article/60-push
電源が入っていない 証明書の有効期限が切れてる デバイスのプッシュ通知ステータスがアクティブ(Active)になっていない アプリがアンインストールされてる 登録されているデバイストークンと環境(development/production)が一致しない 証明書の扱いは難しいらしい http://faq.growthbeat.com/article/81-growthpush
具体的にエラーとなるのは、下記のような場合です:
iOSの証明書の有効期限が切れている
iOSの証明書が無効化されている。
AndroidのAPIキーのIP制限が設定されている
Androidの証明書が無効化されている
PHPでPush通知を実装する http://qiita.com/toshiyuki_wada/items/a072ec557a49c6f8c00a
AWS CLIで取得する http://qiita.com/tcsh/items/e2184f8c7c283e93b167
各メトリクスの説明 Amazon Simple Notification Service のメトリックスおよびディメンション - Amazon CloudWatch
NumberOfMessagesPublished 発行されたメッセージの数。
NumberOfNotificationsDelivered 正常に配信されたメッセージの数。
NumberOfNotificationsFailed Amazon SNS が配信に失敗したメッセージの数。
このメトリクスは、Amazon SNS が Amazon SQS、電子メール、SMS、またはモバイルプッシュのエンドポイントへのメッセージ配信の試行を停止した後に適用されます。
HTTPまたはHTTPSエンドポイントに対して配信が試行されるたびに、メトリクスが1つ追加されます。
他のすべてのエンドポイントの場合、メッセージが配信されないとカウントが1増加します (試行回数に関係なく)。
HTTP エンドポイントの再試行の数は制御できます。詳細については、「HTTP/HTTPS エンドポイントに対する Amazon SNS 配信再試行ポリシーの設定」を参照してください。
AWS CLI でトピックを作成する aws sns create-topic --name test_20150715 --region ap-northeast-1
出力例:
Read more...