Aws lambda 在zend中创建的Ideploying API如何在aws lambda中表现?
我创建了一个Zend expressive应用程序,它基本上公开了一些API。我想现在将其部署到AWS Lambda。快速轻松地重构代码的最佳方法是什么(或者是否有其他替代方法)来部署它?我是AWS的新手。我想你已经找到了答案,因为这个问题已经问了五个多月了。但我把我在最近的研究中发现的东西用同样的标准贴出来。请注意,您需要至少了解AWS IAM、Lambda、API网关的工作原理,以便遵循我在下面描述的步骤。另外请注意,在本研究期间,我只部署了liminas/mezzio skeleton应用程序,您需要做更多的工作来部署一个真正的应用程序,因为它可能需要AWS环境中的数据库和存储支持,这可能需要相应地调整您的应用程序 PHP应用程序可以使用AWS中对自定义运行时的支持来执行。您可以检查如何完成它,但它不包括任何特定的PHP框架 然后我找到了在无服务器环境中运行PHP应用程序所需的所有工具。你可以浏览他们的文档来了解事情是如何运作的 为了让liminas/mezzio(zend expressive project的新名称)skeltopn应用程序正常工作,我遵循了bref文档中给出的步骤。首先,我使用Aws lambda 在zend中创建的Ideploying API如何在aws lambda中表现?,aws-lambda,mezzio,Aws Lambda,Mezzio,我创建了一个Zend expressive应用程序,它基本上公开了一些API。我想现在将其部署到AWS Lambda。快速轻松地重构代码的最佳方法是什么(或者是否有其他替代方法)来部署它?我是AWS的新手。我想你已经找到了答案,因为这个问题已经问了五个多月了。但我把我在最近的研究中发现的东西用同样的标准贴出来。请注意,您需要至少了解AWS IAM、Lambda、API网关的工作原理,以便遵循我在下面描述的步骤。另外请注意,在本研究期间,我只部署了liminas/mezzio skeleton应用
composer require bref/bref
然后,我根据文档在项目的根文件夹中创建了serverless.yml文件,并对其进行了一些调整,如下所示
service: myapp-serverless
provider:
name: aws
region: eu-west-1 # Change according to the AWS region you use
runtime: provided
plugins:
- ./vendor/bref/bref
package:
exclude:
- node_modules/**
- data/**
- test/**
functions:
api:
handler: public/index.php
timeout: 28 # in seconds (API Gateway has a timeout of 29 seconds)
memorySize: 512 # Memory size for the AWS lambda function. Default is 1024MB
layers:
- ${bref:layer.php-73-fpm}
events:
- http: 'ANY /'
- http: 'ANY /{proxy+}'
然后,我遵循bref文档中给出的用于部署应用程序的步骤。您可以检查如何在系统上安装无服务器框架,并查看需要如何配置它
要安装Servless,我使用了npm安装-g serverless
为了配置工具,我使用了无服务器配置凭据--provider aws--key--secret
。请注意,此处使用的此密钥需要管理员访问AWS环境
然后serverless deploy
命令将应用程序部署到AWS环境
上述命令的结果将为您提供一个API网关端点,您的应用程序/API将使用该端点。这是一个PHP无服务器应用程序的起点,为了让一个真正的应用程序在这里工作,可能还需要做很多其他工作