gpt4 book ai didi

node.js - 无服务器部署后未创建端点

转载 作者:行者123 更新时间:2023-12-05 01:13:50 24 4
gpt4 key购买 nike

我正在尝试使用无服务器框架部署 lambda 函数,部署成功但我无法看到 lambda 函数的 api 网关,并且部署后没有创建端点,我在下面发布代码

无服务器.yml

# Welcome to Serverless!
#
# This file is the main config file for your service.
# It's very minimal at this point and uses default values.
# You can always add more config options for more control.
# We've included some commented out config examples here.
# Just uncomment any of them to get that config option.
#
# For full config options, check the docs:
# docs.serverless.com
#
# Happy Coding!

service: learning-serverless-post-apigetway
# app and org for use with dashboard.serverless.com
#app: your-app-name
#org: your-org-name

# You can pin your service to only deploy with a specific Serverless version
# Check out our docs for more details
# frameworkVersion: "=X.X.X"

provider:
name: aws
runtime: nodejs12.x

# you can overwrite defaults here
# stage: dev
# region: us-east-1

# you can add statements to the Lambda function's IAM Role here
# iamRoleStatements:
# - Effect: "Allow"
# Action:
# - "s3:ListBucket"
# Resource: { "Fn::Join" : ["", ["arn:aws:s3:::", { "Ref" : "ServerlessDeploymentBucket" } ] ] }
# - Effect: "Allow"
# Action:
# - "s3:PutObject"
# Resource:
# Fn::Join:
# - ""
# - - "arn:aws:s3:::"
# - "Ref" : "ServerlessDeploymentBucket"
# - "/*"

# you can define service wide environment variables here
# environment:
# variable1: value1

# you can add packaging information here
#package:
# include:
# - include-me.js
# - include-me-dir/**
# exclude:
# - exclude-me.js
# - exclude-me-dir/**

functions:
hello:
handler: handler.hello
# The following are a few example events you can configure
# NOTE: Please make sure to change your handler code to work with those events
# Check the event documentation for details
# events:
# - http:
# path: users/create
# method: get
# - websocket: $connect
# - s3: ${env:BUCKET}
# - schedule: rate(10 minutes)
# - sns: greeter-topic
# - stream: arn:aws:dynamodb:region:XXXXXX:table/foo/stream/1970-01-01T00:00:00.000
# - alexaSkill: amzn1.ask.skill.xx-xx-xx-xx
# - alexaSmartHome: amzn1.ask.skill.xx-xx-xx-xx
# - iot:
# sql: "SELECT * FROM 'some_topic'"
# - cloudwatchEvent:
# event:
# source:
# - "aws.ec2"
# detail-type:
# - "EC2 Instance State-change Notification"
# detail:
# state:
# - pending
# - cloudwatchLog: '/aws/lambda/hello'
# - cognitoUserPool:
# pool: MyUserPool
# trigger: PreSignUp
# - alb:
# listenerArn: arn:aws:elasticloadbalancing:us-east-1:XXXXXX:listener/app/my-load-balancer/50dc6c495c0c9188/
# priority: 1
# conditions:
# host: example.com
# path: /hello

# Define function environment variables here
# environment:
# variable2: value2

# you can add CloudFormation resource templates here
#resources:
# Resources:
# NewResource:
# Type: AWS::S3::Bucket
# Properties:
# BucketName: my-new-bucket
# Outputs:
# NewOutput:
# Description: "Description for the output"
# Value: "Some output value"

处理程序.js

 'use strict';

module.exports.hello = async event => {
if(event.httpMethod ==='POST'){
const response ={
statusCode: 200,
body: JSON.stringify({
body: event.body
})
};
}else{
const response = {
statusCode: 200,
body: JSON.stringify({
message:'Something else was called'
})
}
}
};

输出日志:

 Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
........
Serverless: Stack create finished...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service learning-serverless-post-apigetway.zip file to S3 (607 B)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
...............
Serverless: Stack update finished...
Service Information
service: learning-serverless-post-apigetway
stage: dev
region: us-east-1
stack: learning-serverless-post-apigetway-dev
resources: 6
api keys:
None
endpoints: // There is no endpoint URL
None
functions:
hello: learning-serverless-post-apigetway-dev-hello
layers:
None
Serverless: Run the "serverless" command to setup monitoring, troubleshooting and testing.

我在 API 网关中也看不到 API,请帮助我是无服务器的新手

最佳答案

使用 serverless.yml 中的函数定义,您需要明确告诉它需要添加一个 http 事件触发器。无服务器允许您在 AWS 生态系统中设置大量可能的事件触发器,因此您需要明确定义特定 Lambda 函数所需的触发器。更改就像您已经拥有的多几行一样简单:

functions:
hello:
handler: handler.hello
events:
- http:
method: get
path: /myendpointpath

如果您想查看所有可能的事件触发器,此页面应该会有所帮助:

https://serverless.com/framework/docs/providers/aws/guide/events/#aws---events

关于node.js - 无服务器部署后未创建端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59567602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com