AWS Community Day Hong Kong 2025 Recap

初心者からビルダーへ――素晴らしいクラウドの旅

Recap Series

録画

https://www.youtube.com/watch?v=Rs0yu_fEgFQ

経歴

  • AWSとの歩みを紹介した。
  • クラウドコンピューティングの予備知識がない状態で、2023年に学習を始めた。
  • AWS User Group Philippinesに参加し、AWS Creativesチームの一員になった。
  • AWSを使ってサービスのデプロイ、コードの実行、プロジェクトの構築に取り組んだ。
  • 6か月以内にクラウドコンサルタント、AWS User Group Philippinesのコミュニティリード、AWS Community Builderとなり、AWS Certified Cloud Practitioner認定も取得した。

AWS User Group Philippines

  • ミートアップリードとしての役割を説明した。
  • 学生、キャリアチェンジを目指す人、若手プロフェッショナルを対象に、無料のセミナーやウェビナーを毎月開催している。
  • 学習とコミュニティ交流を促進するため、さまざまなイベントを主催している。

AWS Community Builderになるまで

  • 自身の歩みを紹介した。
  • UI/UXデザインの経験はあったものの、技術的なバックグラウンドがない状態でAWSに取り組み始めた。
  • コミュニティのリソースを通じてAWSを学んだ。
  • 6か月以内にAWSを使ったさまざまなアプリケーションの作成に関する記事を書き、AWS Community Builderに応募した。

リソースとコラボレーション

  • [ 1 ] 参加者にフィードバックと協力を呼びかけた。
  • フィードバックフォームへの回答を依頼した。
  • Tutorials Dojoが提供するAWS模擬試験のQRコードを案内した。
  • [ 2 ] 無料の模擬試験リソースを提供した。
  • Tutorials Dojoの模擬試験を無料で受験できるバウチャーが参加者に提供されると発表した。
  • AWS Certified Cloud PractitionerまたはSAA試験に向けた参加者の準備を支援することを目的としている。

まとめ

  • 参加者がこのセッションに価値を見いだし、提供されたリソースを活用することへの期待を述べた。
  • AWSコミュニティでのさらなる交流と協力を呼びかけた。

AWS LambdaとCORSを使ったPythonコードプレイグラウンドの作成

目的

  • WebインターフェイスからPythonコードを実行できるコードプレイグラウンドを作成する。

アーキテクチャ

  • フロントエンド:Amazon EC2上で稼働するWebサイト。
  • バックエンド:Pythonコードを実行するAWS Lambda関数。

Pythonコードプレイグラウンドの作成手順

[ 1 ] AWS Lambda関数を作成する

  • AWS Management Consoleを開く。
  • Lambdaへ移動し、[関数の作成]をクリックする。
  • [一から作成]を選択する。
  • 関数名を入力する(例:UG_HK_PythonCodePlayground)。
  • ランタイムとしてPythonを選択する。
  • Lambdaの基本的な権限を持つ新しい実行ロールを作成する。

[ 2 ] CORSを使用する関数URLを設定する

  • Lambda関数の設定で[関数URL]へ移動する。
  • 関数URLを有効にする。
  • 次のヘッダーを追加してCORSを設定する。
  • 公開するヘッダー(Expose Headers):Content-Type
  • 許可するヘッダー(Allow Headers):Content-Type
  • 必要に応じて、キャッシュ用の有効期間(Max Age)を設定する。

[ 3 ] Lambda関数のコードを記述してデプロイする

  • Lambda関数エディターでPythonコードを記述する。
  • 関数を保存してデプロイする。

[ 4 ] フロントエンド(HTMLファイル)を作成する

  • Visual Studio Codeを開く。
  • フロントエンド用のHTMLファイルを作成する。
  • Lambdaの設定から関数URLをコピーする。
  • HTMLファイル内で関数URLを使用し、Lambda関数を呼び出して実行する。

[ 5 ] 構成をテストする

  • フロントエンドがLambda関数と通信できるよう、CORSが正しく設定されていることを確認する。
  • WebインターフェイスからPythonコードを実行するテストを行う。

要点

  • CORS設定:フロントエンドとLambda関数の通信を可能にするために不可欠。
  • 関数URL:Lambda関数に直接アクセスできるHTTP(S)エンドポイントを提供する。
  • テスト:Pythonコードが正しく実行され、フロントエンドが結果を取得できることを確認する。

まとめ

  • このPythonコードプレイグラウンドでは、バックエンドにAWS Lambda、フロントエンドにAmazon EC2を活用し、WebインターフェイスからPythonコードを実行できる。

トラブルシューティング手順

[ 1 ] HTTPエラー

  • コードの実行時にHTTPエラーが発生した。
  • 問題を特定するため、ブラウザーの開発者ツールで[ネットワーク]タブを確認した。

[ 2 ] CORSの設定ミス

  • 次のヘッダーについて問題を特定した。

Access-Control-Allow-Origin

ヘッダーが`false`に設定されていた

  • Allow Originヘッダーが適切に設定されていることを確認し、CORS設定を修正した。

[ 3 ] CORS設定の確認

  • ブラウザーの開発者ツールを使用して、ネットワークリクエストを調べた。
  • 次の2種類のリクエストを確認した。
  • プリフライトリクエスト:ブラウザーがサーバーに問い合わせ、オリジン間リクエストが許可されているか確認する。
  • 実際のリクエスト(PATCH):プリフライトリクエストでCORS設定が正しいと確認された後、サーバーからデータを取得する。

[ 4 ] 最終テスト

  • CORS設定を修正した後、コードを再度実行した。
  • Pythonコードが正常に実行され、フロントエンドが結果を取得できたことを確認した。

まとめ

  • Pythonコードプレイグラウンドで、バックエンドにAWS Lambda、フロントエンドにAmazon EC2を活用し、WebインターフェイスからPythonコードを実行できるようになった。
  • フロントエンドがLambda関数と通信するには、CORSを適切に設定することが極めて重要である。

Pythonコードプレイグラウンドの振り返り

  • 関数URLを設定したAWS Lambdaを使用し、Pythonコードプレイグラウンドを作成する方法を実演した。
  • 異なるWebサイトからでもオリジン間の問題なくLambda関数へアクセスできるよう、CORSを設定した。
  • 異なるオリジン間で必要なリクエストとレスポンスをブラウザーが許可するようにした。
  • Lambdaリソースと外部Webサイト間の安全な通信におけるCORS設定の重要性を強調した。