目次
最初のサーバーレスサービス
CORS構成
CORSラムダ調整
関数を呼び出す
実用的なラムダの構築
コードの実装
オプション:バンドリング
結論
ホームページ ウェブフロントエンド CSSチュートリアル AWS Lambda機能を使用して、最初のサーバーレスサービスを構築します

AWS Lambda機能を使用して、最初のサーバーレスサービスを構築します

Apr 05, 2025 am 10:10 AM

AWS Lambda機能を使用して、最初のサーバーレスサービスを構築します

多くの開発者は、AWSラムダ機能にある程度精通しています。比較的簡単にセットアップできますが、広大なAWSエコシステムをナビゲートするのは困難です。膨大な数のコンポーネントにより、より大きな画像を把握し、ラムダ関数を標準のWebアプリケーションにスムーズに統合することが困難になります。

サーバーレスフレームワークは、このプロセスを大幅に簡素化します。作成、展開、そして最も重要なことに、Lambda機能のWebアプリケーションへの統合を合理化します。その機能はこれをはるかに超えていますが、この記事ではこれらのコア側面に焦点を当てています。この紹介では、サーバーレスのより広い機能を探索するためにあなたの興味を促します。 Lambdaが初めての場合は、最初にこのAWS入門ガイドをレビューすることを検討してください。

クイックスタートガイドは、初期インストールとセットアップに最適な指示を提供します。それに続いて、AWSアカウントを作成する必要がある場合でも、5〜10分以内に運用する必要があります。

最初のサーバーレスサービス

ファイルアップロードやS3バケットなどの高度な機能に飛び込む前に、基本的なLambda関数を作成し、HTTPエンドポイントに接続し、既存のWebアプリケーションから呼び出します。この関数は複雑なタスクを実行しませんが、サーバーレスフレームワークの使いやすさを効果的に示しています。

サービスを作成することから始めます。 Webアプリケーションで( create-react-appを使用することは、新しいものを簡単に開始する方法です)、サービス用のディレクトリ( lambdaフォルダーなど)を作成します。端末のこのディレクトリに移動して実行します。

 SLS CREATE -T AWS-NODEJS  -  PATH HELLY-WORLD
ログイン後にコピー

これによりhello-worldディレクトリが作成されます。その内容を調べてみましょう。

handler.jsには、メッセージを返す非同期関数が含まれています。 sls deployを使用して、このLambda関数をすぐに展開して、呼び出される可能性があります。ただし、まずWebからアクセスできるようにしましょう。

手動AWS構成では、AWS APIゲートウェイのエンドポイントとステージのセットアップを行い、Lambdaにプロキシに設定します。サーバーレスは、最小限の構成でこれらすべてを処理します。

まだhello-worldディレクトリに、 serverless.yamlをOpen。

構成ファイルには、一般的なセットアップ用のボイラープレートが含まれています。 httpエントリを解除し、より記述的なパスを指定します。

関数:
  こんにちは:
    ハンドラー:Handler.hello
    イベント:
      -HTTP:
        パス:MSG
        方法:取得します
ログイン後にコピー

それでおしまい。サーバーレスは、基礎となる複雑さを管理します。

CORS構成

Fetch APIを使用してフロントエンドJavaScriptから関数を呼び出すには、CORS構成が必要です。このセクションでは、プロセスの概要を説明します。

cors: true

関数:
  こんにちは:
    ハンドラー:Handler.hello
    イベント:
      -HTTP:
        パス:MSG
        方法:取得します
        CORS:本当です
ログイン後にコピー

これにより、APIエンドポイントにCORが構成され、クロスオリジン通信が可能になります。

CORSラムダ調整

HTTPエンドポイントはCORS対応ですが、Lambda関数は適切なヘッダーを返す必要があります。 handler.jsを変更して、これを自動化しましょう。

 const corsResponse = obj =>({
  ステータスコード:200、
  ヘッダー:{
    「アクセスコントロール - アロウオリジン」:「*」、
    「Access-Control-Allow-Headers」:「*」
    「アクセスコントロール - アロウメソッド」:「*」
  }、
  ボディ:json.stringify(obj)
});

module.exports.hello = async event => {
  return corsResponse( "hello、world!");
};
ログイン後にコピー

これで、Lambda関数の応答はこの関数を通じて処理されます。

hello-worldディレクトリからsls deploy実行して、Lambda関数を展開します。

sls infoコマンドは関数のURLを提供し、AWSコンソールで手動で検索する必要性を排除します。 URLは似ています:

 <code>https://6xpmc3g0ch.execute-api.us-east-1.amazonaws.com/dev/msg</code>
ログイン後にコピー

関数を呼び出す

次に、Fetchを使用してWebアプリケーションから関数を呼び出しましょう。

 fetch( "https://6xpmc3g0ch.execute-api.us-east-1.amazonaws.com/dev/msg")
  .then(resp => resp.json())
  .then(resp => {
    console.log(resp);
  });
ログイン後にコピー

メッセージは、ブラウザの開発者コンソールに表示されるはずです。

このプロセスを繰り返して、より実用的な機能を作成しましょう。画像を変更してS3バケットにアップロードするラムダです。 S3アップロードをトリガーする代わりに、ユーザーはLambdaに直接アップロードし、クライアント側のAWS SDKリソースの必要性を排除します。

実用的なラムダの構築

新しいサービスを作成しましょう(例: cover-art ):

 SLS CREATE -T AWS-NODEJS  - パスカバーアート
ログイン後にコピー

HTTPエンドポイントパス(ファイルアップロードの投稿メソッド)を追加し、CORを有効にします。

イベント:
  -HTTP:
    パス:アップロード
    方法:投稿
    CORS:本当です
ログイン後にコピー

serverless.yamliamRoleStatementsセクションを解除および変更することにより、s3バケツへのラムダアクセスを許可します:yaml:

 iamrolestatements:
   - 効果:「許可」
    アクション:
       - 「S3:*」
    リソース:["arn:aws:s3 ::: your-bucket-name/*"]
ログイン後にコピー

APIゲートウェイを構成して、 multipart/form-dataを受け入れます。

プロバイダー:
  名前:AWS
  ランタイム:nodejs12.x
  アピガートウェイ:
    binarymediatypes:
       -  'multipart/form-data'
ログイン後にコピー

serverless.yamlおよびhandler.jsの機能をuploadに変更します。

コードの実装

必要なパッケージをインストールします:

 npm i jimp uuid lambda-multipart-parser
ログイン後にコピー

handler.jsにS3アップロードヘルパー関数とメインアップロード関数を実装します(完全なコードは広すぎてここに含まれますが、元のプロンプトで使用できます)。

クライアント側のreact-dropzoneのようなライブラリを使用して、ファイルのアップロードを処理します(元のプロンプトで提供されるコードの例)。

オプション:バンドリング

コードをバンドルすると、展開サイズが削減され、パフォーマンスが向上します。 serverless-webpackをインストールしてください:

 npm i serverless-webpack  -  save-dev
ログイン後にコピー

serverless.yamlに追加します:

プラグイン:
  -serverless-webpack
ログイン後にコピー

webpack.config.js (元のプロンプトで提供される構成)を作成します。 webpackを利用するための再展開。

結論

サーバーレスフレームワークは、AWSラムダ機能の開発と展開を大幅に簡素化します。この紹介は、その能力をさらに調査するための基盤を提供します。元のプロンプトに記載されているリソースは、より深い理解のための貴重な学習機会を提供します。

以上がAWS Lambda機能を使用して、最初のサーバーレスサービスを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Googleフォント変数フォント Googleフォント変数フォント Apr 09, 2025 am 10:42 AM

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 Apr 11, 2025 am 11:29 AM

プロジェクトにカウントダウンタイマーが必要だったことはありますか?そのようなことのために、プラグインに手を伸ばすのは自然なことかもしれませんが、実際にはもっとたくさんあります

HTMLデータ属性ガイド HTMLデータ属性ガイド Apr 11, 2025 am 11:50 AM

HTML、CSS、およびJavaScriptのデータ属性について知りたいと思っていたことはすべて。

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

SVGでタータンパターンを生成する静的サイトを作成する方法 SVGでタータンパターンを生成する静的サイトを作成する方法 Apr 09, 2025 am 11:29 AM

タータンは、スコットランド、特にファッショナブルなキルトに通常関連する模様のある布です。 Tartanify.comでは、5,000を超えるTartanを集めました

WordPressテーマでVueコンポーネントを構築する方法 WordPressテーマでVueコンポーネントを構築する方法 Apr 11, 2025 am 11:03 AM

インラインテンプレートディレクティブにより、既存のWordPressマークアップに対する進行性の強化として、リッチVUEコンポーネントを構築できます。

PHPはテンプレートのA-OKです PHPはテンプレートのA-OKです Apr 11, 2025 am 11:04 AM

PHPテンプレートは、多くの場合、サブパーコードを促進するために悪いラップを取得しますが、そうである必要はありません。 PHPプロジェクトが基本を実施する方法を見てみましょう

静的フォームプロバイダーの比較 静的フォームプロバイダーの比較 Apr 16, 2025 am 11:20 AM

ここでは、「静的フォームプロバイダー」という用語を埋めてみましょう。あなたはあなたのHTMLを持ってきます

See all articles