本日の人気ページ
- タイムチャート作成(6)
- 個人タスク管理(5)
- WBS作成ツール(5)
- 3.OS基本設定(5)
- 1.システム情報取得(4)
- 簡易インシデント管理(3)
- 1.基本構成(3)
昨日の人気ページ
10
本日の人気ページ
昨日の人気ページ
10
ふと、Lambdaからのパブリックアクセスってどうなっているの?と思って試してみた。
最初の疑問、AWS API叩けるんだから非VPCのLambdaはできるよね・・・VPC内のLambdaは??
結果は、非VPCは特別な設定は不要で、VPC内からはNATを経由することでパブリックアクセス可能となりました。
APIGateway/Lambda関数の呼び出しやAws/APIGateway/プライベートAPIGatewayを異なるアカウントから呼び出すを参考にしてください。
パブリックAPIGatewayを作成し、[Lambda プロキシ統合の使用]を設定してLambdaを呼び出しています。
Lambdaは、[event]から['httpMethod']を抽出して、APIGatewayにレスポンスを返しています。
つまり「“GET”」とだけレスポンスします。
import json def lambda_handler(event, context): return { 'isBase64Encoded': False, 'statusCode': 200, 'headers': {}, 'body': json.dumps(event['httpMethod']) }
ただのHTTPSリクエストをするだけの関数です。
つまり正常にレスポンスを受けたら「“GET”」とだけ表示します。
import urllib3 import json def lambda_handler(event, context): url = "https://XXXXX.execute-api.ap-northeast-1.amazonaws.com/dev" http = urllib3.PoolManager() response = http.request("GET",url) content = json.loads(response.data.decode("utf-8")) return content
調べたところ、公式に載っていました。NATGWを経由せよ・・・ホント?
https://aws.amazon.com/jp/premiumsupport/knowledge-center/internet-access-lambda-function/
イメージ図
結果は成功、問題なく呼び出せました。
よく考えたら、LambdaはプライベートIPしかもっていないから、パブリックサブネットに配置してもIGW経由で疎通できないのか
と思って、EIPをLambdaのネットワークインターフェースに割り当てようとしたらエラーで失敗しました。
告知 2022/05/27 日本語URLが不評なので全ページ修正しました、リンク切れはツリーを辿ってください。