Amazon web services 如何在aws中调用serverless

Amazon web services 如何在aws中调用serverless,amazon-web-services,lambda,serverless,Amazon Web Services,Lambda,Serverless,我对整个无服务器框架还不熟悉。我创建了第一个无服务器函数,如本文所述。接下来,当我执行“无服务器调用”时,它会工作。我很困惑这是怎么回事,围绕这一点我有很多问题 似乎没有创建API网关,所以它如何调用 在serverless.yml文件中还提到了一些阶段,我不确定这些阶段转换成什么 非常感谢您在这方面提供的任何帮助。您可以附加一个API网关来调用lambda 或 您可以使用事件驱动。当您的lambda被调用以响应某些事件时,例如AWS SNS中的新消息或在S3中创建新对象时 或 您可以使用clo

我对整个无服务器框架还不熟悉。我创建了第一个无服务器函数,如本文所述。接下来,当我执行“无服务器调用”时,它会工作。我很困惑这是怎么回事,围绕这一点我有很多问题

  • 似乎没有创建API网关,所以它如何调用
  • 在serverless.yml文件中还提到了一些阶段,我不确定这些阶段转换成什么

  • 非常感谢您在这方面提供的任何帮助。

    您可以附加一个API网关来调用lambda

    您可以使用事件驱动。当您的lambda被调用以响应某些事件时,例如AWS SNS中的新消息或在S3中创建新对象时

    您可以使用cloudwatch触发器事件安排调用


    有关可调用lambda的事件的全面列表,请参见中所述的lambda的HTTPS端点。例如,在
    us-east-1
    区域中,端点为
    https://lambda.us-east-1.amazonaws.com
    。这就是不使用API网关直接调用Lambda的方法。API网关可以添加额外的功能,并将完整的HTTP协议置于Lambda之上

    首先,AWS模板附带的默认代码只声明了一个Lambda函数。让我试着回答你的问题

    似乎没有创建API网关,所以它如何调用

    是的,因为没有创建API网关,所以不可能通过URL调用Lambda。但是,可以使用AWS CLI或SDK调用Lambda,这是无服务器框架提供的“无服务器调用”。要创建API网关,需要向函数代码添加事件对象,如下所示

    functions:
      hello:
        handler: handler.hello
        events:
          - http:
              method: get
              path: hello
    
    https://your-api/<stage-you-defined>/resurce-methods
    
    在serverless.yml文件中也提到了一些阶段,我不清楚 确定这些是什么意思吗

    当您在serverless.yml文件中定义一个stage时,部署完成后,它会在API网关中创建一个stage,并将其包含在API网关URL路径中,如下所示

    functions:
      hello:
        handler: handler.hello
        events:
          - http:
              method: get
              path: hello
    
    https://your-api/<stage-you-defined>/resurce-methods
    
    https://your-api//resurce-methods
    
    注意:如果为API网关设置自定义证书,则可以选择设置自己的自定义路径


    还需要注意的是,尽管API网关支持此功能,使单个API网关部署具有不同的阶段(例如测试、登台、生产),但最新的无服务器框架不使用此功能。相反,当您定义一个新阶段时,它将使用新阶段部署一个全新的API网关。Serverless框架支持分离API网关,并使用单个阶段自行包含每个阶段以进行隔离。

    谢谢,但是我想知道Serverless调用是如何工作的,因为它似乎没有创建任何东西(我是AWS的新手,所以很容易遗漏一些东西)