零基础入门Serverless:Hello World

本文涉及的产品
简介: 来自Serverless,向世界说句你好。

零基础入门Serverless:Hello World


1. 开通并进入到阿里云Serverless产品

  1. 通过阿里云首页,找到"产品"->"弹性计算"->"Serverless"->"函数计算FC"

  1. 点击进入函数计算FC的页面

  1. 点击管理控制台按钮,并进行账号注册/登陆

  1. 针对首次使用的用户需要进行函数计算服务的开通,需要阅读协议,并且同意(点击1中的选择框),然后点击右下角的立即开通即可
  2. 进入控制台之后,如果右上角有“体验新版控制台”按钮,请点击该按钮,如果没有该按钮,可以跳过本步骤

2. 创建服务和函数

  1. 选择左侧的服务及函数之后,可以先进行服务的创建

  1. 按照页面提醒,进行服务名称设定,然后可以选择性的进行描述信息填写、日志服务和链路追踪功能开启,最后点击确定即可

  1. 完成服务的创建之后,可以进行函数的创建

  1. 需要我们天蝎函数名,选择一个自己熟悉的编程环境,以及设置一个内存规格,最后点击创建即可

  1. 创建之后可以在代码框中,编写代码,例如默认的Hello World
# -*- coding: utf-8 -*-
import logging
# To enable the initializer feature (https://help.aliyun.com/document_detail/158208.html)
# please implement the initializer function as below:
# def initializer(context):
#   logger = logging.getLogger()
#   logger.info('initializing')
def handler(event, context):
  logger = logging.getLogger()
  logger.info('hello world')
  return 'hello world'
  1. 当代码有变更之后,系统会进行提醒,我们需要部署代码

  1. 部署代码之后,我们可以进行测试函数

测试完成之后,可以看到最终的`return`将会作为返回结果进行展示,中间的`logger.info`将会作为日志输出进行展示

3. 创建一个可以通过网址访问的Hello World

在刚刚的流程中,我们创建的是一个通过其他触发器触发函数的案例,此时我们可以创建一个通过HTTP请求触发函数的案例。

此时需要注意的几个点:

  1. 创建一个新的函数,并在创建函数的时候,选择“通过HTTP请求触发”

  1. 创建完成之后,与刚刚的代码不同的是,这个Http触发的代码包括了一些Http的信息
# -*- coding: utf-8 -*-
import logging
HELLO_WORLD = b'Hello world!\n'
# To enable the initializer feature (https://help.aliyun.com/document_detail/158208.html)
# please implement the initializer function as below:
# def initializer(context):
#    logger = logging.getLogger()  
#    logger.info('initializing')
def handler(environ, start_response):
    context = environ['fc.context']
    request_uri = environ['fc.request_uri']
    for k, v in environ.items():
      if k.startswith('HTTP_'):
        # process custom request headers
        pass
    # do something here
    status = '200 OK'
    response_headers = [('Content-type', 'text/plain')]
    start_response(status, response_headers)
    return [HELLO_WORLD]

关于不同语言的HTTP触发方法案例可以参考文档:https://help.aliyun.com/document_detail/71229.html#title-h8k-hhq-xiu

在文档最下面有相对应的案例链接:

  1. 创建完成函数之后,我们可以进行触发器查看

  1. 可以看到,这个函数下又一个HTTP触发器,并附带一个请求地址,我们可以通过POSTMAN等工具,对这个地址进行测试:

额外说明:如果在浏览器中直接打开请求地址,将会以附件的方式下载响应。这是因为 Http 触发器会自动在响应头中添加 Content-Disposition: attachment 字段。开发者可以使用自定义域名避免该问题。自定义域名文档:https://help.aliyun.com/document_detail/90759.html

至此我们完成了通过不同事件触发函数计算的Hello World案例

4. 安装和配置Serverless Devs开发者工具

  1. 安装Node.js环境。
  1. 执行如下命令,下载Node.js安装包:
wget https://npm.taobao.org/mirrors/node/v12.4.0/node-v12.4.0-linux-x64.tar.xz
  1. 执行如下命令,解压安装包并重命名:
tar -xvf node-v12.4.0-linux-x64.tar.xz && mv node-v12.4.0-linux-x64/ /usr/local/node
  1. 执行如下命令,配置环境变量:
echo "export PATH=$PATH:/usr/local/node/bin" >> /etc/profile
  1. 让环境变量生效:
source /etc/profile
  1. 执行如下命令,安装Serverless-Devs工具:
npm install @serverless-devs/s -g
  1. 返回结果如下,表示安装完成:

说明 :如果安装过程较慢,可以使用淘宝npm源,安装命令为`npm --registry=https://registry.npm.taobao.org install @serverless-devs/s -g`。

  1. 执行如下命令,查看版本并检查安装是否正确:
s -v
  1. 返回结果如下,您可以看到Serverless-Devs工具的版本:
@serverless-devs/s: 2.0.94, @serverless-devs/core: 0.1.14, darwin-x64, node-v12.15.0

3. 配置阿里云密钥信息:

说明 :本场景提供免费的ECS服务器,但是使用的函数计算服务是开通在您账号下,以下配置信息也是需要配置您账号的UID、AccessKey ID和AccessKey Secret信息。

执行如下命令,配置账号信息。

s config add

然后根据提示填写以下信息。

  • 云厂商:选择Alibaba Cloud(alibaba)。

  • AccessKeyID和AccessKeySecret:请在安全信息管理页面查看您账号的AccessKey ID和AccessKey Secret。
  • 如果您使用的是阿里云主账号,请在安全信息管理页面的安全提示弹框中,单击继续使用AccessKey。

  • 如果您使用的是阿里云RAM子用户,需要确保您的子用户拥有函数计算管理权限AliyunFCFullAccess,请参见为RAM用户授权。您可以在安全信息管理页面中,查看您的AccessKey ID和AccessKey Secret,如下图所示。如果您的账号未使用过AccessKey,请单击右上角创建AccessKey。

配置成功后,您将会收到以下提示。

5. 创建资源

  • 在页面中间,单击创建资源,创建所需资源。
  • 在页面左侧导航栏中,单击云产品资源列表,查看本次实验资源相关信息。

说明:资源创建过程需要1~3分钟。完成实验资源的创建后,您可以在云产品资源列表查看已创建的资源信息,例如:IP地址、用户名和密码等。

6. 通过工具创建Hello World函数

  1. 通过初始化命令,进行项目的初始化,由于Serverless Devs提供多种语言的支持,所以可以参考下表,根据自己需求进行初始化:

编程语言

函数类型

执行命令

Nodejs12

HTTP

s init start-fc-http-nodejs12

Event

s init start-fc-event-nodejs12

Python3

HTTP

s init start-fc-http-python3

Event

s init start-fc-event-python3

Java8

HTTP

s init start-fc-http-java

Event

s init start-fc-event-java8

Golang

Event

s init fc-custom-golang-event

PHP7

HTTP

s init start-fc-http-php7

Event

s init start-fc-event-php7

更多案例可以参考:https://github.com/devsapp/start-fc

例如,我选择了Nodejs HTTP案例

s init start-fc-http-nodejs12
  1. 为要创建的项目输入一个名称,本示例中为start-fc-http-nodejs12。
start-fc-http-nodejs12
  1. 选择default,然后按回车。
  2. 执行如下命令,进入start-fc-http-nodejs12目录。
cd start-fc-http-nodejs12
  1. 执行如下命令,部署项目。
s deploy
  1. 返回结果如下,表示部署完成,并复制url。

  1. 打开浏览器:

实验地址:https://developer.aliyun.com/adc/scenario/702351b0bc0c4c90b81a76fc4b616195

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
10月前
|
Serverless
函数计算入门-HelloWorld应用开发
本场景介绍如何使用函数计算服务开发HelloWorld应用。
492 0
|
弹性计算 监控 安全
函数计算入门-HelloWorld应用开发
本场景介绍如何使用函数计算服务开发HelloWorld应用。
函数计算入门-HelloWorld应用开发
|
Serverless
函数计算入门示例 - hello world
函数计算,控制台使用
7316 0
|
6天前
|
运维 Cloud Native Serverless
函数计算产品使用问题之之前部署的sd应用可以正常使用,但现在点击链接却显示“无法访问此页面”,是什么原因
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4天前
|
运维 Serverless 应用服务中间件
Serverless 应用引擎产品使用合集之关于OSS映射目录的大小限制,如何可以跳过
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
Serverless 应用引擎产品使用合集之关于OSS映射目录的大小限制,如何可以跳过
|
2天前
|
分布式计算 Hadoop Serverless
数据处理的艺术:EMR Serverless Spark实践及应用体验
阿里云EMR Serverless Spark是基于Spark的全托管大数据处理平台,融合云原生弹性与自动化,提供任务全生命周期管理,让数据工程师专注数据分析。它内置高性能Fusion Engine,性能比开源Spark提升200%,并有成本优化的Celeborn服务。支持计算存储分离、OSS-HDFS兼容、DLF元数据管理,实现一站式的开发体验和Serverless资源管理。适用于数据报表、科学项目等场景,简化开发与运维流程。用户可通过阿里云控制台快速配置和体验EMR Serverless Spark服务。
|
4天前
|
运维 Serverless API
Serverless 应用引擎产品使用合集之通过 API 调用 /tagger/v1/interrogate 时,出现unsupported protocol scheme "" 错误,如何处理
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
4天前
|
缓存 运维 监控
Serverless 应用引擎产品使用合集之在使用函数计算 FC 部署 stable-diffusion 应用时,选了 tagger 扩展插件却拿不到提示词,还报错“Error”,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
4天前
|
关系型数据库 MySQL Serverless
Serverless 应用引擎产品使用合集之在SAE2.0上的应用如何访问云原生数据库PolarDB MySQL版集群
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
4天前
|
运维 Kubernetes Java
Serverless 应用引擎产品使用合集之如何设置能让应用定时启停
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。

热门文章

最新文章

相关产品

  • 函数计算