在该目录下创建 Funfile 文件内容如下。 RUNTIME python3 RUN fun-install pip install psycopg2
执行fun install命令安装依赖: $ fun install using template: template.yml start installing function dependencies without docker 安装过程。。。。 Install Success
在函数根目录下新建代码文件,例如 /tmp/code/index.py ,内容如下。 # -*- coding: utf-8 -*- import logging import psycopg2 import os,sys logger = logging.getLogger() def getConnection(): try: conn = psycopg2.connect( database = os.environ['DATABASE'], user = os.environ['USER'], password = os.environ['PASSWORD'], host = os.environ['HOST'], port = os.environ['PORT'], ) return conn except Exception as e: logger.error(e) logger.error("ERROR: Unexpected error: Could not connect to PostgreSQL instance.") sys.exit() def conditionallyCreateUsersTable(): conn = getConnection() cur = conn.cursor() cur.execute('''CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);''') conn.commit() conn.close() def initializer(context): conditionallyCreateUsersTable() def handler(event, context): try: conn = getConnection() cur = conn.cursor() cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (1, 'Paul', 32, 'California', 20000.00 )"); conn.commit() return 'successfully' finally: conn.close()
执行以下命令部署函数。 $ fun deploy -y using template: template.yml using region: cn-hangzhou using accountId: ***********3743 using accessKeyId: ***********Ptgk using timeout: 60 部署过程。。。 function python-test deploy success service PostgreSQL-test deploy success 登录控制台,即可看到相关的服务、函数被创建成功,且触发执行可以返回正确的结果。