API Gateway обрабатывает хостинг и токены безопасности (при желании).После того, как http-запрос достигнет API-шлюза, он должен быть перехвачен назначенной лямбдой.Я предполагаю, давая ваш комментарий, что вы уже имеете в виду лямбду.Таким образом, для шага Build Lambda вы можете изменить код в main
, чтобы он стал вашим кодом.
Шаг 1: Build Lambda
Для развертывания вашей лямбды вам понадобитсядля создания службы Serverless Framework.
1) Сначала установите Serverless Framework
2) Перейдите в каталог, в котором вы хотите хранить файлы шлюза API и лямбда
3) В командной строке выполните:
serverless create --template aws-python
# if you don't want to use python simply change the template language
4) Создайте новый файл (в данном примере он называется lambdaGET.py) для развертывания внутри вашей лямбды
lambdaGET.py
import json
def lambda_handler(event, context):
print("Received event: " + json.dumps(event, indent=2))
event = json.loads(json.dumps(event))
# I recommend you verify the data here although it is not critical
'''
After the lambda has obtained the results it needs to correctly
format them to be passed across the API Gateway
'''
response = {
"isBase64Encoded": False,
"statusCode": 200,
"headers": {},
"body": json.dumps(result)
}
return response
Шаг 2. Сборка Serverless.yml
На этом шаге необходимо создать файл без сервера для развертывания лямбда-интерфейса, API-шлюза и их соединения.
service: YourServiceName
provider:
name: aws
runtime: python2.7
timeout: 30
stage: ${opt:stage, 'dev'}
region: ${opt:region, 'us-east-1'}
profile: ${opt:profile, 'default'}
apiName : ${self:service}-${self:provider.stage}
environment:
region: ${self:provider.region}
stage: ${self:provider.stage}
stackTags:
Owner : YourName
Project : YourProjectName
Service : ${self:service}
Team : YourTeamName
stackPolicy: # This policy allows updates to all resources
- Effect: Allow
Principal: "*"
Action: "Update:*"
Resource: "*"
iamRoleStatements:
functions:
lambdaGET:
handler: lambdaGET.main
events:
- http:
method: GET
path: /foobar
resp: json
В разделе событий файла без сервера вы объявляете ресурсы шлюза API.
Шаг 3. Развертывание
1) Установка Командная строка AWS
3) Настройте AWS configure
4) СделайтеВаши каталоги настроены правильно: (lambdaGET.py и servless.yml должны находиться в одной папке)
```
-ServiceDirectory
--- lambdaGET.py
--- serverless.yml
```
5) Перейдите в папку ServiceDirectory и в командной строке выполните:
sls deploy
Шаг 4: Тест
Ваш API теперь можно вызывать с помощью браузеров или программ, таких как Postman
Базовый URL-адрес для всех конечных точек API ваших служб можно найти в консоли внутри API Gateway.> Служба (в вашем случае «YourServerName»)> Панель инструментов
Почти там ... Теперь, когда у вас есть базовый URL, вам нужно добавитьрасширение, которое мы поместили в нашу конечную точку: /foobar
Теперь вы можете поместить весь этот URL в Postman и получить вывод вашей лямбды.
:)
Я надеюсь, что этопомогает.