Я пробую serverless.com
с AWS в качестве провайдера. Я хотел бы сделать простое приложение hello world с API Gateway и Lambda, где я публикую sh API из openapi spe c.
Я видел в этом сообщении на форуме , что мне нужно объявить spe c как ресурс в файле serverless.yml, но при этом я получаю следующую ошибку при выполнении sls deploy
:
Я думаю, что я в основном правильно, за исключением того, что в файле openapi spe c я не знаю, как правильно ссылаться на URI для API, который я создаю. Это причина того, что я получаю ошибку?
Serverless Error ---------------------------------------
An error occurred: ApiGatewayRestApi - Errors found during import:
Unable to put integration on 'GET' for resource at path '/hello': Invalid function ARN or invalid uri (Service: AmazonApiGateway; Status Code: 400; Error Code: BadRequestException; Request ID: ...).
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Issues: forum.serverless.com
Your Environment Information ---------------------------
Operating System: darwin
Node Version: 12.16.2
Framework Version: 1.67.3
Plugin Version: 3.6.6
SDK Version: 2.3.0
Components Version: 2.29.3
Я пытаюсь найти самый простой пример:
# serverless.yml
service: accounts-api
provider:
name: aws
apiName: accounts
runtime: nodejs12.x
stage: dev
region: ap-southeast-2
functions:
hello:
handler: functions/handler.hello
events:
- http:
path: /accounts
method: GET
# The resources attribute will be sent directly to CloudFormation in raw format
resources:
Resources:
ApiGatewayRestApi:
Type: 'AWS::ApiGateway::RestApi'
Properties:
Name: ${self:provider.apiName}-${self:provider.stage}
Body:
${file(specs/simple-spec.yml)}
ApiGatewayDeployment:
Type: AWS::ApiGateway::Deployment
Properties:
RestApiId:
Ref: ApiGatewayRestApi
StageName: ${self:provider.stage}
и openapi spe c:
openapi: 3.0.0
info:
version: 1.0.0
title: Hello API
description: Returns a hello world message
paths:
/hello:
get:
description: Returns a hello world message
responses:
'200':
description: Successful response
security:
- api_key: []
x-amazon-apigateway-auth:
type: none
x-amazon-apigateway-integration:
x-amazon-apigateway-integration:
type: aws_proxy
uri: arn:aws:apigateway:ap-southeast-2:lambda:path/2015-03-31/functions/arn:aws:lambda:ap-southeast-2:idAccount:function:hello/invocations
httpMethod: GET
passthroughBehavior: when_no_templates
payloadFormatVersion: 1.0