はじめに TypeScript用のORMであるPrismaは、DBのスキーマをMigrationという方法で管理することができる。 ActiveRecordのMigrationとよく似ており、CREATE/ALTER TABLEのSQLクエリを順次適用していく感じのもの。 Migrationは、DBと疎通している環境から prisma migrate というコマンドを打つことで適用できる。 本記事では、このPrismaのMigrationをAWS Lambdaでサーバーレスに実行する方法を紹介する。 方法 大まかなアーキテクチャは下図。 なお本記事はDBがAWS上にあることを前提としているが、他のクラウドでも同様の方法は取れるはず。 実際のコードは、こちらのリポジトリを参照。 Migrationを実行するLambdaのコードの抜粋は下記。 Prismaには現状コードからMigrationコ
AWS re:Invent 2022の会期中に発表された新サービス/アップデートのまとめです。 今年も、後から出来るだけ素早く簡単に振り返ることができるようにまとめました! 凡例 (無印) 新サービス (Update) 既存サービスのアップデート (APN) パートナー制度に関連したリリース/アップデート 日時は米国時間で表記します。 11/28 (月) Amazon EC2 C7gn instances (Preview) 前世代のC6gnインスタンスと比較して、最大200Gbpsのネットワーク帯域幅と、最大50%高いパケット処理性能を提供 Amazon EC2 C6in instances 最大3.5GHzのオールコアターボ周波数を持つ第3世代Intel Xeon Scalableプロセッサーを搭載 x86ベースのAmazon EC2としては初めて、最大200Gbpsのネットワーク帯域
<2023年12月19日追記> 本記事中に「①失敗したジョブから再実行が出来ない」という課題の記載がありますが、現時点で解消されています。詳しくは、「AWS Step Functions 待望の『リドライブ』機能がGAされました | TECH | NRI Digital」の記事をご参照ください。 こんにちは、NRIデジタルの島です。 AWSパブリッククラウド上でバッチジョブのワークフローを構築する際の選択肢はあまり多くありません。 弊社社内においても「JP1 ※1」や「Senju ※2」等のジョブ運用管理ツールを使ってAWSサービスと連携している事例が多いと思っております。 AWSサービスでは「Amazon Managed Workflows for Apache Airflow (MWAA)」や「AWS Step Functions(以下Step Functions」、「AWS Glue
タイトルままですが、私の環境(以下に記載)でTerraformの plan apply destroy を行うと以下のようなエラーが起こることが頻発していました。 環境 PC M1 Mac OS: Big Sur Terraform tfenv terraform: v1.1.7 エラー内容 Error: Failed to load plugin schemas │ │ Error while loading schemas for plugin components: Failed to obtain provider schema: Could not load the schema for provider │ registry.terraform.io/hashicorp/aws: failed to instantiate provider "registry.terrafor
ステートマシン定義で存在しないパラメータを指定した場合、States.Runtimeエラーが発生し、処理が終了します。このエラーを防ぐために、Choiceステートを使用して、パラメータが存在するかを検証する方法を紹介します。 こんにちは、ヤギです。 今回の記事は Step Functionsのパラメータをバリデーションする方法です。 Step Functionsは、アクション間でパラメータ指定して、受け渡すことができます。 しかし、存在しないパラメータをASLで指定すると、States.Runtimeエラーが発生します。このエラーはリトライ、キャッチすることができず、ジョブが途中終了します。 また、このStates.RuntimeエラーはStates.ALLでは検出されません。 例えばCatchでエラー通知を行なっていた場合、通知処理が実行されないため、ジョブの失敗に気づくことができません
皆さま, こんにちわ 10月になってしまって涼しくなって来たと思ったら三連休は暑いですね〜 今日は, aws s3ネタです. やりたいこと 対象ディレクトリ配下でファイル更新があったもののみs3にアップロードしたい, という場合には aws s3 cp を使えば良いという話. 毎回対象ディレクトリを aws s3 sync してもよいのですが, それだとファイル数が多いと検索に時間がかかってしまい, 1ファイルをアップロードするのにも十数分とか掛かってしまうことがある. (時間はファイル数によって上下します) そのため, 更新したファイルだけを検知して aws s3 cp をその都度実行した方が効率が良いだろうということで採用した. 仕組み 更新(タイムスタンプが変更), もしくは新規作成されたファイルがあった場合に, lsyncdで検知させ, スクリプト(aws s3 cp)を実行させる
セッションマネージャーを導入しようと思ったそこの貴方!まずは既存の環境や導入予定の新規環境を見直してみませんか?プライベートサブネットにあるEC2への通信方法を考えながら、それぞれの長所・短所をまとめてみました。どのような通信方法を選ぶかを考える際の参考にして頂ければ幸いです。 ブドウ糖てんこ盛りな ラムネ菓子は良いぞ。 長時間の資格試験、集中力が大事な作業、一気に書き上げたいブログ…… ラムネは全てにおいて有用です。 ▲ 目が"冴えます" 突然の熱いラムネ推しからこんにちは。今まさにラムネをかじっているAWS事業本部のShirotaです。 ずっと甘味と言えばチョコレート最推しだったのですが、脳に直接甘味が効くと感じられてからはラムネを食べる頻度が増しています。 ただラムネに含まれるブドウ糖の有用性を語ろうと思って検索しようとしたところ、「ラムネ 太る 」という心を貫くサジェストに出くわし
弊社ではkintone(キントーン)のカスタマイズ開発でスケジューリングが必要なバッチ処理が発生した場合にAWS Lambdaを利用することがあります。 Lambdaはnode.jsに対応しているため、kintoneで日頃JavaScriptで開発している我々としても扱いやすく、また何よりもサーバーレスでコードを実行できるのでkintoneとの相性も非常に良いサービスです。 ただし、Lambda上でLambda functionを実行し、kintoneからデータを取得し、加工処理をしてからkintoneにデータを戻すといった連携を行う場合、kintone(正確にはcybozu.com基盤)上でIPアドレス制限をかけているとLambda側からkintoneへのAPIアクセスができなくなるというちょっと困った状況に陥ります。 Lambdaが利用しているグローバルIPアドレスを.com側の許可I
AWS Lambdaで遂にNode v8.10を使用できるようになりました。 これでPuppeteerが使える!と意気揚々としていたのですが、いつの間にか必須要件がv6.4.0以上となっていました。以前はv7.10以上必須と書かれていたはずですが・・・ いきなり出鼻を挫かれましたが、気を取り直していきます。 はじめに:PuppeteerとはGoogle謹製のGoogleChromeを自動操作するライブラリです。Nodeで動作します。 「このサイトにアクセスして、このボタンをクリックして・・・」といった操作を自動で行うことができます。雑に言うとExcelのマクロみたいなものです。 Chrome59で実装されたヘッドレスモードに合わせる形でプロジェクトが立ち上がり、主にWebアプリの自動化テストの分野で注目されています。 似たプロジェクトにPhantomJSやChromelessがあります。
はじめに AWS LambdaでPuppeteerを動かすためのメモです。 npm の @serverless-chrome/lambda と chrome-remote-interface を使用した例はいくつかありますが、開発停止の影響のためか、一部のPuppeteer APIが動作しなかったので、chrome-aws-lambda パッケージを使用します。 環境 AWS Lambda ランタイム:Node.js 8.10 ローカル macOS Mojave(10.14.3) npm 6.8.0 手順 Lambda Layerに登録するパッケージの作成 Lambda Layer登録 AWSのコンソールからLambdaを開く。 Layer設定画面を開く Layerの作成 Layerのアップロード 名前: 任意のLayer名 説明: 任意の説明文 コードエントリタイプ: .zipファイルを
アマゾン ウェブ サービスの公式イベントのアーカイブおよびオンデマンドコンテンツの動画や資料がご利用いただけます。
javascriptからCognitoのユーザプールで認証する方法を確認しました。 Amazon API GatewayのオーソライザーとしてCognito認証を指定することができますが、API Gatewayにアクセスする際にはCognito認証で取得したIDトークンが必要となります。 今回はIDトークンの取得とAPIへの与え方の確認になります。(qiita初投稿です) 0. 今回利用するサービスやモジュールたち Cognito (ユーザプール) node.js (javascript runtime) amazon-cognito-identity-js (Cognito javascript SDK) Axios (XHR library) 1. Cognito (ユーザプール) の設定 今回はユーザ・パスワードで認証させるだけなので、シンプルな構成でユーザプールを作成します。 ユー
MySQL 8.0 になって、デフォルトのユーザー認証方式が新規に導入された caching_sha2_password に変わりました。 クライアント(libmysqlclient)も caching_sha2_password に対応した 5.7.23 以降 または 8.0 系である必要があるため、接続エラーをきっかけにこの仕様変更を知り、デフォルトの認証方式を mysql_native_password に変更して乗り切っている方も多いようです。 一方で Amazon RDS for MySQL 8.0 のデフォルトのユーザー認証は mysql_native_password のままのため、特別な対応は不要です。 今回は MySQL のデフォルトのユーザー認証方式の確認方法 caching_sha2_password での接続方法 を調べたので、共有します。 Amazon RDS f
AWS+Reactアプリ作成入門(Cognito編) AWS+Reactアプリ作成入門(S3編) AWS+Reactアプリ作成入門(DynamoDB編) AWS+Reactアプリ作成入門(IAM Role編) AWS+Reactアプリ作成入門(ログイン後のAdmin編) 今回作成したアプリ ==>久喜SNS AWSのIAMサービスにRoleというものがあります。Roleは、AWSサービスのリソースへのアクセスを制御します。今回のアプリの例で言えば、Conginitoサービスを使っていますので、そのCognitoアプリがどのリソースへアクセスできるかをRoleによって決められています。CognitoアプリのRoleは、非ログインユーザとログインユーザで別のものが用意されていますので、ログイン状態によってユーザはアクセス権限が異なります。ちなみにRoleはPolicyのセットとして定義されます
Deploy Node.js projects to AWS Lambda easily Claudia makes it easy to deploy Node.js projects to AWS Lambda and API Gateway. It automates all the error-prone deployment and configuration tasks, and sets everything up the way JavaScript developers expect out of the box. This means that you can get started with Lambda microservices easily, and focus on solving important business problems instead of
この記事はServerless(2) Advent Calendar 2016 の16日目の記事です。 自身のプロダクトをClaudia.jsを使って開発しているのですが、今回はその紹介を書きたいと思います。 Claudia.jsとは Claudia.jsはオープンソースのLambdaデプロイメントツールです。Node.jsで作成したLambdaアプリケーションを簡易にデプロイすることが出来ます。API Gatewayと組み合わせることも可能です。 Lambdaのデプロイツール(フレームワーク)といえばServerless FrameworkやApexなど多数存在しますが、他のツールとくらべてClaudia.jsは何が違うのでしょうか? 最も大きな特徴は、Node.jsに特化しているという点です。ServerlessやApexのように複数のプログラミング言語に対応しているツールと異なり、C
ども、@kimihom です。 今回は AWS Lambda における Node.js のコードの書き方について。 実装したいこと 例えば、id を複数持った配列があるとして、その配列を 一個一個 HTTP リクエストで叩きたい、ということがあるだろう。id単位でしかリソースを削除できないような API があった場合などは必ずそんな場面に出くわす。 これを AWS Lambda で実装するには、どうすれば良いだろうか。ここに AWS Lambda の落とし穴が潜んでいる。何も考えずに書くとこんな感じになるだろう。 var request = require('request'); exports.handler = function(event, context) { var host = "https://api.awesomeapp.com"; var ids = [1,2,3,4];
AWS Compute Blog Simply Serverless: Using AWS Lambda to Expose Custom Cookies with API Gateway Simply Serverless Welcome to a new series on quick and simple hacks/tips/tricks and common use cases to using AWS Lambda and AWS API Gateway. As always, I’m listening to readers (@listonb), so if you have any questions, comments or tips you’d like to see, let me know! This is a guest post by Jim Warner f
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く