53ningen.com

@gomi_ningen's Website

Secrets Manager を使ってみる

Secrets Manager への値の格納と取得

チュートリアルに書いてある内容をためしてみる。CLI からまずはシークレットの作成を行う

$ aws secretsmanager create-secret --name tutorials/MyFirstSecret --description "Basic Create Secret" --secret-string S3@tt13R0cks

続いて格納したシークレットのメタデータ、およびシークレットそのものを取得する

$ aws secretsmanager describe-secret --secret-id tutorials/MyFirstSecret
{
    "ARN": "...",
    "Name": "tutorials/MyFirstSecret",
    "Description": "Basic Create Secret",
    "LastChangedDate": ...,
    "LastAccessedDate": ...,
    "Vers...
Read More

SNS-Kinesis Firehose-S3 連携の CloudFormation テンプレート

Amazon SNS トピックに対して Kinesis Firehose ストリームをエンドポイントとするサブスクリプションを作成できるようになったので手早くこれを構成するための CloudFormation テンプレートをメモしておく。

作成する必要があるリソースは以下の通り

  • S3 バケット
  • SNS トピック
  • Subscription
  • Subscription 用のロール
  • Kinesis Firehose Delivery Stream
  • Delivery Stream 用の IAM ポリシー
  • Delivery Stream 用の IAM ロール
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Resources:
  Test...
Read More

CDK で Step Functions リソースを定義する

これはなに

  • Step Functions のステートマシンを AWS CDK で定義する方法をメモ

Lambda 関数の作成

$ cat functions/hello.ts


const handler = async function (_: any) {
  return {
    result: 'Hello',
  };
};

export { handler };

リソースの定義

$ cat lib/ts-lambda-stepfunctions.ts

import * as lambda from "@aws-cdk/aws-lambda";
import * as logs from "@aws-cdk/aws-logs";
import * as sfn from '@aws-cdk/aws-stepfunctions';
import * as tasks from '@aws-cdk/aws-stepfunctions-tasks';
import * as cdk...
Read More

Step Functions Local を使う

これはなに

  • Step Functions Local の使い方と利用のイメージのメモ

導入方法

ドキュメントに書かれているとおりに実行します: Step Functions (ダウンロード可能バージョン) と Docker - AWS Step Functions

docker pull コマンドでサクッと導入できます

$ docker pull amazon/aws-stepfunctions-local

docker run コマンドで Step Functions Local を立ち上げます

$ docker run -p 8083:8083 amazon/aws-stepfunctions-local

Lambda 関数のローカル実行

Step Functions Local のステートマシン実行前に Lambda 関数をローカルで動かし...

Read More

SAM で Step Functions リソースを定義する

これはなに

  • 2020/5/27 に SAM が Step Functions リソースをサポートしたので、リソース定義の流れを確認しておくメモ
  • シンプルな機能を持つ Lambda 関数を数珠つなぎにして、大きなアプリケーションを構成するときに Lambda から Lambda、あるいは Lambda, から SNS, SQS などを通して Lambda を起動するよりも、Step Functions を用いたほうがワークフローが明確で、処理の流れがコードを見ずに理解できる
  • ステートマシンから直接 DynamoDB テーブルの読み書きも可能なのでそのあたりのコード書かなくてすむのでやっぱりサーバーレスアプリケーションを構成するときにはかなり有用

Lambda 関数の作成

チュートリアルとして、ある関数 A が "Hello" と返し、関数 B は "World"...

Read More

DynamoDB local と localstack の導入

DynamoDB local について

公式ドキュメント に記載されているように .jar ファイル形式で提供されていて、ダウンロードして手軽に使えます。

導入手順

以下のようにお手軽に利用可能

$ wget https://s3-ap-northeast-1.amazonaws.com/dynamodb-local-tokyo/dynamodb_local_latest.zip
$ unzip dynamodb_local_latest
$ java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
$ aws configure #=> 認証情報が空の場合は fake でもよいので設定しておく必要がある
$ aws dynamo...
Read More

CloudWatch メトリクスのグラフを SNS トピックに通知するアプリケーションを作った

CloudWatch メトリクスのグラフを単純に SNS トピックに通知するアプリケーションを Serverless Application Repository に登録しました。

1. ユースケース

例えば通知先のトピックのサブスクライバは基本的にメッセージを処理する Lambda 関数を想定しています。利用例としては以下のようなものが思い浮かびます。

  • メッセージを処理して E メールを送信する
  • Slack に通知する

例えば Billing のグラフを毎日とある Slack チャンネルに送信することにより課金状況をコンソールにログインせず確認できたり、システムの稼働状...

Read More

ES2015+Flowなlambda関数をApexで管理する

ES2015 + 型チェッカー flow で書かれた AWS Lambda 関数を Apex で管理する方法について、つらつらとメモ。この記事は @nagisio 先生のご指導のおかげで成立しています(謝辞)。

  • キーワード
    • AWS Lambda
    • yarn
    • ES2015
    • flow
    • Apex

記事読むの面倒くさいので、動くリポジトリよこせという方は**ここを clone**すべし(動かしてから理解する方が楽なのですよねー :wakaru:)

ES2015 + flow + Apex の環境構築

yarn の導入

導入はかんたん。

  1. npm initpackage.json を作る
  2. npm install yarn --dev で yarn を導入する
  • global に入れたい方はどうぞ

package.json はきっとこんな感じになっているのではなかろうか

{
  "name...
Read More

Copyright © 53ningen.com