我试图部署lambda函数和API网关。我用AWS CLI创建了一个. net核心web API项目。仅部署该函数并在aws Web控制台上手动创建API网关和资源确实有效。
如果我在模板中包含API网关,在通过web控制台或CLI部署SAM包后,我会收到以下错误:
“未为方法定义集成(服务:AmazonApiGateway;状态代码:400;错误代码:BadRequestException;请求ID:…)
这里有什么不对劲的地方吗?
SAM包命令:
sam package --template-file sam-profile.yaml --output-template-file serverless-output.yaml --s3-bucket testapp-fewtfvdy-lambda-deployments
SAM模板:
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
ProfileFunction:
Type: AWS::Serverless::Function
Properties:
Handler: testapp.Profile.NetCoreVS::testapp.Profile.NetCoreVS.LambdaEntryPoint::FunctionHandlerAsync
Runtime: dotnetcore2.0
MemorySize : 128
Timeout : 5
CodeUri: bin/Release/netcoreapp2.0/publish
Events:
ProfileAny:
Type: Api
Properties:
RestApiId: !Ref ProfileApiGateway
Path: /profile/v1
Method: GET
ProfileApiGateway:
DependsOn: ProfileFunction
Type: 'AWS::Serverless::Api'
Properties:
StageName: Prod
DefinitionUri: './swagger.yaml'
swagger.yaml:
---
swagger: '2.0'
info:
version: v1
title: ProfileAPI
paths:
"/profile/v1":
get:
tags:
- Values
operationId: ProfileV1Get
consumes: []
produces:
- text/plain
- application/json
- text/json
parameters: []
responses:
'200':
description: Success
schema:
type: array
items:
type: string
definitions: {}
[Route("profile/v1")]
public class ValuesController : Controller
{
// GET api/values
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2","value_new3" };
}
}
你的昂首阔步的定义是缺少x-amazon-apigateway-集成
。
这将为您提供集成层:
---
swagger: '2.0'
info:
version: v1
title: ProfileAPI
paths:
"/profile/v1":
get:
tags:
- Values
operationId: ProfileV1Get
consumes: []
produces:
- text/plain
- application/json
- text/json
parameters: []
responses:
'200':
description: Success
schema:
type: array
items:
type: string
x-amazon-apigateway-integration:
httpMethod: post
type: aws_proxy
uri:
Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${ProfileFunction.Arn}/invocations
definitions: {}
请注意,x-amazon-apigateway-集成
的http方法总是POST,因为API网关总是向Lambda发出POST请求,而不管您的API路由使用的是什么方法。
我有以下的云形成模板片段。整个模板创建了ECS法门集群以及所有资源。但是现在,我面临着法门服务和任务定义的问题。 模板的服务部分如下所示: 服务: 任务定义如下: 任务定义: 我知道,fargate服务和任务定义在集群中是相互关联的。但问题是,如何使用模板建立这种关系。 我收到以下失败事件: 任务定义中不存在容器abc服务开发人员。(服务:AmazonECS;状态代码:400;错误代码:Inval
Azure新手,创建了一个非常基本的ARM模板。有人能告诉我为什么我经常收到以下错误:“部署模板验证失败:'模板中未定义资源'Microsoft.Network/virtualNetworks/vNet'。请参阅https://aka.ms/arm-template有关用法的详细信息。(代码:InvalidTemplate)” 我试图删除“依赖”条目,但没有成功。 谢谢 { }
以下模板部署: https://gist.github.com/rnkhouse/aea0a8fd395da37b19466348b919d620 错误: “部署失败,状态代码为400,消息:部署模板验证失败:'模板中未定义资源'Microsoft.Network/virtualNetworks/mtes dev VNET'。请参阅。”https://aka.ms/arm-template有关用法
Good day我不确定发生了什么我怀疑eclipse,但在UserDetailsServiceImpl中它是定义的,因为我实现了spring的UserDetails服务,下面是我的代码 这是让人头痛的一行“UserDetails UserDetails=userDetailsService.loadUserByUsername(username)”提前感谢您
我试图理解Spring MVC Restful架构。想知道有多少种方法可以将SpringMVC与RESTfulWeb服务集成在一起。我可以看到其中一个是使用Rest模板。 这是在Spring MVC中使用rest Web服务的唯一方法吗? 我们可以单独使用SpringMVC开发web应用程序而不使用任何web服务吗。 如果我说错了,请指正。 谢谢你的帮助。
给定类 我试图定义一个自定义的代码生成模板,该模板将创建一个方法,其形式如下 我有以下速度模板,但输出不正确。 输出为 当我试图向字符串添加一个结束大括号(})时,模板-它无法呈现。