![](/img/trans.png)
[英]How can I identify that an AWS Lambda was created using the AWS CDK?
[英]How can Ideploying APIs created in zend expressive in aws lambda?
我创建了一个 Zend 富有表现力的应用程序,它基本上公开了一些 API。 我现在想将它部署到 AWS Lambda。 快速轻松地重构代码(或有其他替代方案)以部署它的最佳方法是什么? 我是 AWS 的新手。
我假设您已经找到了答案,因为这个问题已经超过五个月了。 但我将我在最近的研究中发现的内容以相同的标准发布。 请注意,您至少需要对 AWS IAM、Lambda、API 网关的方式有所了解,才能按照我在下面描述的步骤进行操作。 另请注意,在这项研究期间,我只部署了 liminas/mezzio 框架应用程序,您需要做更多的工作来部署真正的应用程序,因为它可能需要 AWS 环境中的数据库和存储支持,这可能需要相应地调整您的应用程序.
PHP 应用程序可以使用 AWS 中的自定义运行时支持来执行。 您可以查看这篇AWS 博客文章,了解如何完成它,但它不涵盖任何特定的 PHP 框架。
然后我发现这个项目提供了在无服务器环境中运行 PHP 应用程序所需的所有工具。 您可以通过他们的文档 go 了解事情是如何工作的。
为了让 liminas/mezzio(zend 表达项目的新名称)skeltopn 应用程序正常工作,我遵循了 bref 文档中给出的laravel 教程。 首先我安装了 bref package 使用
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 文档中给出的部署指南,即使用无服务器框架来部署应用程序。 您可以在此处查看如何在您的系统上安装无服务器框架,并在此处查看需要如何配置它。
要安装无服务器,我使用npm install -g serverless
要配置该工具,我使用了serverless config credentials --provider aws --key <key> --secret <secret>
。 请注意,此处使用的此密钥需要管理员访问 AWS 环境。
然后serverless deploy
命令会将您的应用程序部署到 AWS 环境。
上述命令的结果将为您提供一个 API 网关端点,您的应用程序/api 将使用该端点。 这旨在作为 PHP 无服务器应用程序的起点,并且可能需要完成许多其他工作才能让真正的应用程序在那里工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.