AWS工程师学习阿里云【函数计算篇(4)】
为了学习阿里云,通常主要使用AWS的工程师提供了相关信息和步骤。
这次的内容是什么
-
- start-web-frameworkの紹介(再掲)
- Function Computeを利用したWebフレームワーク(Django)をServerless Devsで実装
这将是如下所述。
免责声明
此文是根据发布时的信息编写的,可能与最新信息不同。
此文不能保证完整性、准确性、实用性、安全性等。
如果您使用此文,请自行负责。
■ 先决条件
-
- Alibaba Cloudアカウントを作成済みであることを前提とします。
Alibaba Cloud アカウントを作成
AWSエンジニアが学習するAlibaba Cloud【Function Compute編 (2)】までを実施済みの環境であることを前提とします。
概述
开始web框架
在上一次的Laravel版中也进行了类似的解释,start-web-framework是一个利用阿里巴巴云的Web框架应用案例。
已经公开了将Web框架部署到阿里云的函数计算的方法。
同时,这也成为了Serverless Devs项目的默认仓库之一。
-
- start-web-framework
https://github.com/devsapp/start-web-framework/blob/master/readme_en.md
现在,Web框架的部署方法如下,在start-web-framework已经公开:
这次我准备参考Serverless Devs使用Python开发中最受欢迎的WEB框架Django的start-web-framework来进行实现。
■ 让我们开始吧 ba)
1. 使用函数计算进行执行(Serverless Devs)
这次我们还是使用Serverless Devs来部署Django,并展示“Hello World”的内容。这个步骤也是上一次(函数计算篇(2))的延续。
– 创建「AliyunFcDefaultRole」角色
– 创建「RAM用户(serverlessdevstest)」并生成AccessKey/AccessKey Secret
– 为「RAM用户(serverlessdevstest)」添加AdministratorAccess权限
已经执行了。
1.1. 登录阿里巴巴云
请输入您的账号(电子邮件)和密码,然后点击【登录】按钮。

1.2. 启动CloudShell
为了进行验证,本次也将在CloudShell中执行ServerlessDevs。
请点击屏幕上的菜单,选择【CloudShell】。

确认CloudShell的终端显示在画面底部。

1.3. 引入 Serverless Devs 开发者工具
在CloudShell的终端中执行以下命令来安装Serverless Devs开发者工具。
如果在CloudShell之外安装,请先安装Node.js12或更新版本,然后再执行该命令。
npm install @serverless-devs/s -g

1.4. 初始化并部署 Serverless Devs 项目
安装完Serverless Devs开发者工具后,通过执行以下命令初始化项目。此次我们在init命令后添加start-django,以从默认仓库获取Django项目模板。有关init命令的详细信息,请参阅Doc中的init command。
s init start-django -d start-django

在项目初始化界面上,您需要输入或选择以下项目。本次选择界面的一部分显示为中文。
这个显示似乎只是暂时的,将来会被修正,但在本篇文章中,我们将按照屏幕上的选择项进行记录,作为一种解决方案。
创建应用所在的地区
(訳:アプリケーションを配置するリージョンを作成する)
請輸入東京區域(ap-northeast-1)。
服务名称,只能包含字母、数字、下划线和中划线。不能以数字、中划线开头。长度在 1-128 之间
(訳:サービス名。英字、数字、アンダースコア、下線のみ可。 数字やアンダースコアからの開始は不可。 文字数は1から128 まで)
请在输入中写入Function Compute的服务名称(此次输入为”FirstWebFlameworkServerlessDevsDjango”)。
函数名称,只能包含字母、数字、下划线和中划线。不能以数字、中划线开头。长度在 1-64 之间
(訳:関数名。英字、数字、アンダースコア、下線のみ可。 数字やアンダースコアからの開始は不可。 文字数は1から64 まで)
请输入Function Compute的函数名(本次输入为”FirstWebFlameworkServerlessDevsDjango”)。
- please select credential alias (Use arrow keys)
选择默认的 Serverless Devs 访问选项
由于这次还涉及到是否进行部署的选择,所以请您输入【Y】进行部署。
- Do you want to deploy the project immediately? (Y/n)
选择Y

部署完成后,将显示部署结果,请确认。
为了进行操作确认,将保留部署结果(在本次情况下是“framework”以下)。

如果您没有记录部署结果,稍后可以通过执行以下命令来确认。
cd [プロジェクト名]
s info
1.5. 在创建Serverless Devs项目后进行操作验证(初始界面)。
使用浏览器(如Chrome)或命令行工具(如curl)对部署结果中显示的URL进行操作确认。
-
- system_url : https://firstwevsdjango-firstwevsdjango-************.ap-northeast-1.fcapp.run
「Django」の初期画面が出力されたHTMLファイルを取得
custom_domain : http://firstwebflameworkserverlessdevsdjango.firstwebflameworkserverlessdevsdjango.*****************.ap-northeast-1.fc.devsapp.net
「Django」の初期画面が表示

1.6. 检查Serverless Devs项目创建后的版本信息
您可以通过__init__.py文件来查看Django的版本。
在本项目中,我们使用的是Django 3.1.7。
cat ~/start-django/code/django/__init__.py

1.7. 添加实现「Hello World」
由于本步骤涉及Django的内容,所以省略了配置的详细信息。如果您想要了解详细内容,请参阅Django文档等相关资料。
这次也
http://[在部署结果输出的URL(custom_domain)]/hello
我們將在函數式視圖中新增一個設定,當訪問該網址時顯示「Hello World」。由於在部署時已經存在名為「Hello World」的應用程式目錄,我們將使用該目錄進行實作。
创建HTML模板
首先,进入start-django目录下的code目录。
然后,在App目录(HelloWorld目录)下,创建一个显示“Hello World”的HTML模板(位于templates目录下的index.html)。
$ cd start-django/code/
$ mkdir HelloWorld/templates
$ vi HelloWorld/templates/index.html
请在index.html文件中添加以下行,并保存。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Hello World</title>
</head>
<body>
Hello World
</body>
</html>
创建 Views
接下来,我们将使用 vi 命令在 Views 文件 (views.py) 中创建一个新的 HTML 模板 (templates 目录下的 index.html)。
$ vi HelloWorld/views.py
请在Views文件(views.py)中添加以下行代码来调用HTML模板(位于templates目录下的index.html),然后保存。
from django.shortcuts import render
def hello(request):
return render(request, 'index.html')
创建路由
创建Views文件(views.py)后,通过vi命令打开Route文件(urls.py)。
$ vi HelloWorld/urls.py
请在Route文件(urls.py)中添加”文件导入”和”当访问特定URL时要执行的操作”(<= 添加的部分),然后保存。
# from django.contrib import admin
from django.urls import path
import index.views
from .views import hello <= 追加
urlpatterns = [
path('', index.views.index),
# path('admin/', admin.site.urls),
path('hello/', hello,name='hello'), <= 追加
]
将应用程序注册到INSTALLED_APPS
最后,为了将“HelloWorld”应用程序添加到INSTALLED_APPS的设置中,打开配置文件(settings.py)使用vi命令。
$ vi HelloWorld/settings.py
在「INSTALLED_APPS」中添加一个名为”HelloWorld”的应用程序(<= 追加的位置),然后保存。
# Application definition
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'index.apps.IndexConfig',
'HelloWorld', <= 追加
]
1.8. 确认Serverless Devs项目创建后的运行情况(Hello World)
将再次执行项目部署。
cd ~/start-django && s deploy -y
在部署完成后,您可以使用浏览器(如Chrome)或命令行工具(如curl)来确认该URL(在下面)是否添加了/hello。
- custom_domain : http://firstwebflameworkserverlessdevsdjango.firstwebflameworkserverlessdevsdjango.*****************.ap-northeast-1.fc.devsapp.net/hello
如果正常运行,将显示以下画面。

■ 下次
我下回想尝试进行有关Java的实现。