我希望在AWS上部署我的nodejs React Web应用程序。目前我在微软的Azure上部署了我的应用程序,而且非常简单。我只需要添加一个App Service并将我的git存储库作为它的源代码。这照顾了托管我的申请。我没有像在AWS上那样做。我正在寻找类似的东西。我应该如何在AWS中执行此操作?
答案 0 :(得分:0)
您可以使用 AWS Elastic Beanstalk 。 Elastic Beanstalk是PaaS产品,它是一种易于使用的服务,用于在熟悉的服务器(如Apache)上部署和扩展使用Java,.NET,PHP,Node.js,Python,Ruby,Go和Docker开发的Web应用程序和服务。 ,Nginx,Passenger和IIS。它类似于Microsoft Azure App服务。
您可以简单地上传您的代码,Elastic Beanstalk会自动处理部署,从容量配置,负载平衡,自动扩展到应用程序运行状况监控。同时,您可以完全控制为您的应用程序提供动力的AWS资源,并且可以随时访问底层资源。
您可以在此处阅读有关部署node.js应用的教程 - Deploying an Express Application to Elastic Beanstalk
答案 1 :(得分:0)
以无服务器方式执行此操作的一种简单方法是使用新的AWS Mobile CLI:
npm install -g awsmobile-cli
然后初始化并发布:
cd ./myproj
awsmobile init #answer some questions
awsmobile publish
这将设置一个配置为您的CDN的CloudFront的S3存储桶来托管您的网络资产。您的NodeJS应用程序可以托管在受API网关保护的Lambda函数中。从客户端配置连接和授权的好方法是在React应用程序中使用AWS Amplify:
npm install aws-amplify --save
npm install aws-amplify-react --save
然后在执行Amplify.configure(your_config_object
后,您可以连接到调用Lambda的API网关:
let apiName = 'MyApiName';
let path = '/path';
let myInit = { // OPTIONAL
headers: {} // OPTIONAL
}
API.get(apiName, path, myInit).then(response => {
// Add your code here
});
这将是对您的AWS资源的签名请求。
更多信息: http://docs.aws.amazon.com/aws-mobile/latest/developerguide/web-getting-started.html