Создайте прокси-ресурс шлюза API с помощью SAM - PullRequest
0 голосов
/ 27 января 2019

У меня, очевидно, простое требование для создания прокси-ресурса в SAM (модель сервера без Amazon). На самом деле настолько просто, что документация Amazon оставляет читателю это упражнение !

Я хочу создать универсальную конечную точку шлюза AWS API для передачи всего прокси в другую службу HTTP.

В консоли AWS конфигурация, которую я пытаюсь создать, выглядит следующим образом:

enter image description here

Я видел этот превосходный пост Кристиана Йохансена и его связанный вопрос переполнения стека здесь о том, как сделать то же самое в CloudFormation. Я полагаю, что я мог бы просто использовать этот код в SAM, однако у SAM есть неявные и явные API, поэтому я хочу избегать создания явных ресурсов, если «правильный путь» - ссылаться на неявные ресурсы.

Кто-нибудь знает, как это сделать?

1 Ответ

0 голосов
/ 02 февраля 2019

После долгой игры я думаю, что нашел ответ в примере здесь . Разница относительно примера Hello World, который SAM настроил для вас из коробки:

diff --git a/sam-app/template.yaml b/sam-app/template.yaml
index 02cd901..f349dcc 100644
--- a/sam-app/template.yaml
+++ b/sam-app/template.yaml
@@ -17,11 +17,11 @@ Resources:
         Variables:
           PARAM1: VALUE
       Events:
-        HelloWorld:
+        ProxyApiGreedy:
           Type: Api
           Properties:
-            Path: /hello
-            Method: get
+            Path: /{proxy+}
+            Method: ANY
 Outputs:
   HelloWorldApi:
     Description: API Gateway endpoint URL for Prod stage for Hello World function

Другими словами, вот так:

Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      ...
      Events:
        ProxyApiGreedy:
          Type: Api
          Properties:
            Path: /{proxy+}
            Method: ANY
...