API Gateway에서 Lambda에 액세스
18343 단어 Python3람다APIGatewayNode.jscurl
index.js
// ---------------------------------------------------------------------
//
// index.js
//
// Nov/03/2017
//
// ---------------------------------------------------------------------
console.log ("*** start *** index.js ***")
exports.handler = function (event,context,callback)
{
var name = (event.name === undefined ? 'No-Name' : event.name)
console.log('"Hello":"' + name + '"')
console.log ("*** handler *** start ***")
console.log ("event.key1 = " + event.key1)
console.log ("event.key2 = " + event.key2)
console.log ("event.key3 = " + event.key3)
console.log ("おはようございます。")
var dt = new Date()
const year = dt.getFullYear()
const month = dt.getMonth()+1
const date = dt.getDate()
const hours = dt.getHours()
const minutes = dt.getMinutes()
const seconds = dt.getSeconds()
var str_out = "" + year + "-" + month + "-" + date
str_out += " " + hours + ":" + minutes + ":" + seconds
console.log(str_out)
console.log(dt.toUTCString())
console.log ("version Nov/03/2017 PM 14:16")
console.log ("*** handler *** end ***")
const rvalue = {"Hello": name,
"city": "シモツケ"}
callback(null, rvalue) // SUCCESS with message
}
// ---------------------------------------------------------------------
이 함수를 morning_function이라는 이름으로 Lambda에 등록합니다.
등록 방법은 여기입니다.
aws cli에서 람다 사용
다음과의 차이점은 uri가 http 또는 lambda의 차이입니다.
aws cli로 API Gateway에 대한 API 만들기
1) RestApi를 만듭니다. 출력에 rest-api-id가 표시됨
restapi_create.sh
#
aws apigateway create-rest-api --name 'Afternoon AAA' \
--region ap-northeast-1
#
확인 방법
aws apigateway get-rest-apis
2) RestApi의 루트 리소스 ID 얻기
restapi_resource.sh
#
REST_API_ID=1awvlqh2cc
#
aws apigateway get-resources \
--rest-api-id $REST_API_ID \
--region ap-northeast-1
#
3) Method를 만듭니다.
4) 테스트합니다.
5) 배포합니다.
테스트
URL 호출
htps : // 오 7 우 cmfhj. 네, 아빠. 아 p의 r ぇ아 st-1. 아마조나 ws. 이 m / st01 "
합니다.
1) curl
restapi_test.sh
#
REST_API_ID=oa7ucmnfhj
#
URL="https://"$REST_API_ID".execute-api.ap-northeast-1.amazonaws.com/test01"
#
curl -H "Content-Type: application/json" -X POST -d@in01.json $URL
in01.json
{"name": "夏目漱石",
"key1": "aaaa",
"key2": "bbbb",
"key3": "cccc"}
2) HTTPie
http_test.sh
URL="https://oa7ucmnfhjs.execute-api.ap-northeast-1.amazonaws.com/test01"
#
http $URL < in01.json
3) 파이썬
restapi_test.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# restapi_test.py
#
# Oct/18/2017
# ----------------------------------------------------------------
import sys
import json
import requests
# ----------------------------------------------------------------
#
rest_api_id="oa7ucmnfhj"
#
url="https://" + rest_api_id + ".execute-api.ap-northeast-1.amazonaws.com/test01"
#
print(url)
#
name = '夏目漱石'
key1 = 'abcdef'
key2 = 'test2'
key3 = 'test3'
#
payload = {'Content-Type': 'application/json',
'name': name,
'key1': key1,
'key2': key2,
'key3': key3}
#
rr = requests.post(url, data=json.dumps(payload))
#
print(rr.text)
#
# ----------------------------------------------------------------
4) Node.js
restapi_test.js
#! /usr/bin/node
// ---------------------------------------------------------------
//
// restapi_test.js
//
// Oct/18/2017
//
// ---------------------------------------------------------------
var Client = require('node-rest-client').Client
var client = new Client()
const args = {
data: { "name": "夏目漱石" },
headers: { "Content-Type": "application/json" }
}
const rest_api_id="oa7ucmnfhj"
const url="https://" + rest_api_id + ".execute-api.ap-northeast-1.amazonaws.com/test01"
client.post(url, args, function (data, response) {
// parsed response body as js object
console.log(data)
// raw response
// console.log(response);
})
//
// ---------------------------------------------------------------
다음 aws-cli 버전에서 확인했습니다.
$ aws --version
aws-cli/2.2.41 Python/3.8.8 Linux/5.14.7-arch1-1 exe/x86_64.arch prompt/off
Reference
이 문제에 관하여(API Gateway에서 Lambda에 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ekzemplaro/items/e20b34e74d63d2a9a5b5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)