Шаблон SAM для интеграции AWS Api Gateway с S3 как AWS Сервис - PullRequest
0 голосов
/ 02 марта 2020

Я пишу шаблоны SAM и хочу создать шлюз API со следующим путем: -

http: /// userFlights / Airlines / static / images / {aviationName}.

Это должно быть в состоянии загрузить файл из корзины S3. Значение {aviationName} может иметь значение, например Indi Go .jpg .

Я могу создать это вручную. Тем не менее, проблема в том, что я не могу найти соответствующую документацию для шаблонов SAM. Мне нужно автоматизировать мой API-шлюз с помощью SAM.

Значения следующие: - Тип интеграции - AWS Сервис

AWS Регион-eu-west-3

AWS Сервис - Сервис простого хранения (S3

Метод Http - GET

Переопределение пути - авиакомпании / статические / изображения / {airlineName}

1 Ответ

1 голос
/ 02 марта 2020

Вы должны использовать определение OpenAPI, используя DefinitionBody в вашем шаблоне SAM, который определяет конфигурацию API. Посмотрите пример прокси-сервера S3 здесь . Я создал API с самым простым и минимальным определением Swagger и развернул его через SAM.

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: AWS SAM template with a S3 integration
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      DefinitionBody: {
        "swagger": "2.0",
        "info": {
          "version": "1.0"
        },
        "paths": {
          "/airlines/static/images/{airlineName}": {
            "get": {
              "produces": [
                "application/json"
              ],
              "responses": {
                "200": {
                  "description": "200 response"
                }
              },
              "x-amazon-apigateway-integration": {
                "responses": {
                  "default": {
                    "statusCode": "200"
                  }
                },
                "credentials": "arn:aws:iam::{account-id}:role/{role-name}",
                "uri": "arn:aws:apigateway:{aws-region}:s3:path/{bucket-name}",
                "passthroughBehavior": "when_no_match",
                "httpMethod": "GET",
                "type": "aws"
              }
            }
          }
        }
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...