当前位置: 首页 > news >正文

电商网站用php做的吗企业网站源码库

电商网站用php做的吗,企业网站源码库,陕西省住房和城乡建设厅执业资格注册中心网站,佛山做网站制作实现目标 创建一个 Lambda 接收调用时传入的数据, 写入 RDS 数据库 Post 表存储文章信息. 表结构如下: idtitlecontentcreate_date1我是标题我是正文内容2023-10-21 15:20:00 AWS 资源准备 RDS 控制台创建 MySQL 实例, 不允许 Public access (后面 Lambda 需要通过 VPC 访问…实现目标 创建一个 Lambda 接收调用时传入的数据, 写入 RDS 数据库 Post 表存储文章信息. 表结构如下: idtitlecontentcreate_date1我是标题我是正文内容2023-10-21 15:20:00 AWS 资源准备 RDS 控制台创建 MySQL 实例, 不允许 Public access (后面 Lambda 需要通过 VPC 访问)Secrets Manager 控制台创建 Credentials for Amazon RDS database 类型密码, 关联上面创建好的 RDS 实例, 起名为 mydb-secret从 VPC 内的跳板机手动连接 RDS 创建数据库 mysql -h [RDS 实例 Endpoint] -u admin -pMySQL [(none)] create database lambdaDB; MySQL [(none)] use lambdaDB; MySQL [(lambdaDB)] CREATE TABLE post (id INT AUTO_INCREMENT PRIMARY KEY,title VARCHAR(255),content TEXT,create_date DATETIME ); Lambda 控制台创建函数 rds-test, Runtime 使用 Python 3.10 和开发环境保持一致, 使用默认选项 Create a new role with basic Lambda permissions 自动为新建函数创建对应的 IAM Role, 展开 Advanced settings, 勾选 Enable VPC, 选择和 RDS 相同的 VPC, 勾选两个不同 AZ 的 Private Subnet (因为是通过内网访问), 选择能访问 RDS 的安全组. 撸码环节 开发环境为 WSL2 VSCode # 创建项目文件夹 mkdir lambda cd lambda # 创建虚拟环境 virtual env source ./env/bin/active # 安装依赖 pip install pymysql peewee boto3 # 启动 VSCode code .VSCode 中创建 rds_lambda.py from peewee import * import json from datetime import datetime import boto3 from botocore.exceptions import ClientErrordef get_secret():从 Secrets Manager 获取 RDS 密码secret_name mydb-secretregion_name cn-northwest-1# Create a Secrets Manager clientsession boto3.session.Session()client session.client(service_namesecretsmanager, region_nameregion_name)try:get_secret_value_response client.get_secret_value(SecretIdsecret_name)except ClientError as e:raise e# Decrypts secret using the associated KMS key.secret get_secret_value_response[SecretString]return json.loads(secret)secret get_secret()# 定义 RDS 连接 db MySQLDatabase(databaselambdaDB,hostsecret[host],usersecret[username],passwordsecret[password],portsecret[port], )# 定义基础模型 class BaseModel(Model):class Meta:database db# 定义数据模型 class Post(BaseModel):title CharField()content TextField()create_date DateTimeField(defaultdatetime.now)# Lambda 入口函数 def lambda_handler(event, context):Lambda 入口函数, 调用时传入 event 应当符合以下 JSON 格式:{title: 我是标题,content: 我是正文内容}# 解析调用函数时传入的参数try:Post.create(**event)except:raise {code: 1, message: 添加数据失败}return {code: 0, message: 添加数据成功} 由于函数中用到了额外的依赖, 所以我们可以连同依赖和函数代码一块打包成 ZIP 文件, 通过 AWSCLI 进行上传部署. 官方操作文档 # 确认当前 Virtualenv 环境下安装的依赖位置 (venv) lpwmBeijing:~/lambda$ pip show peewee Name: peewee Version: 3.17.0 Summary: a little orm Home-page: https://github.com/coleifer/peewee/ Author: Charles Leifer Author-email: coleifergmail.com License: MIT License Location: /home/lpwm/lambda/venv/lib/python3.11/site-packages Requires: Required-by:# 退出 Virtualenv 并将依赖的所有包进行打包 lpwmBeijing:~/lambda$ deactivate lpwmBeijing:~/lambda$ cd venv/lib/python3.11/site-packages/ lpwmBeijing:~/lambda/venv/lib/python3.11/site-packages$ zip -r ../../../../deployment_package.zip . # 返回项目主文件夹中, 检查依赖的包打好了 lpwmBeijing:~/lambda/venv/lib/python3.11/site-packages$ cd ../../../../ lpwmBeijing:~/lambda$ ls deployment_package.zip rds_lambda.py venv # 将 rds_lambda.py 再添加到 ZIP 包里面 lpwmBeijing:~/lambda$ zip deployment_package.zip rds_lambda.py adding: rds_lambda.py (deflated 49%) # 检查确认 rds_lambda.py 添加成功 lpwmBeijing:~/lambda$ unzip -l deployment_package.zip | tail1759 2023-10-21 14:57 s3transfer-0.7.0.dist-info/METADATA4 2023-10-21 14:57 s3transfer-0.7.0.dist-info/INSTALLER83 2023-10-21 14:57 s3transfer-0.7.0.dist-info/NOTICE.txt92 2023-10-21 14:57 s3transfer-0.7.0.dist-info/WHEEL11 2023-10-21 14:57 s3transfer-0.7.0.dist-info/top_level.txt2679 2023-10-21 14:57 s3transfer-0.7.0.dist-info/RECORD11358 2023-10-21 14:57 s3transfer-0.7.0.dist-info/LICENSE.txt1596 2023-10-21 15:17 rds_lambda.py --------- ------- 102887926 4266 files# 上传 ZIP 包到 Lambda lpwmBeijing:~/lambda$ aws lambda update-function-code --function-name rds-test --zip-file fileb://deployment_package.zip上传命令执行后会返回 Lambda 函数的信息, 显示上传正在进行 期间可以检查上传状态和结果 aws lambda get-function --function-name rds-test上传成功 回到 Lambda 控制台, 通过 ZIP 部署的函数将不再能从浏览器直接编辑代码, 另外留意 Handler 这里用的还是之前创建时默认的入口函数, 需要修改成和我们代码一致的 rds_lambda.lambda_handler 创建测试 测试结果报错: 这是由于当前 Lambda 的 Execution Role 并没有访问 Secrets Manager 的权限. 到 Configuration - Permissions 中找到当前使用的 Role, 跳转到 IAM 控制台 Add permissions - Create inline policy 参考 文档 编写权限 JSON, 允许对特定 Secret 只读的权限 {Version: 2012-10-17,Statement: [{Effect: Allow,Action: [secretsmanager:GetResourcePolicy,secretsmanager:GetSecretValue,secretsmanager:DescribeSecret,secretsmanager:ListSecretVersionIds],Resource: [arn:arn:aws-cn:secretsmanager:cn-northwest-1:888888888888:secret:mydb-secret-lNuRmj]},{Effect: Allow,Action: secretsmanager:ListSecrets,Resource: *}] }再次测试 Lambda 调用成功. 回到跳板机中检查数据库可以看到进来的数据. MariaDB [lambdaDB] select * from post; --------------------------------------------- | id | title | content | create_date | --------------------------------------------- | 1 | Im title | Hello | 2023-10-21 08:30:25 | --------------------------------------------- 1 row in set (0.001 sec)
http://www.w-s-a.com/news/779277/

相关文章:

  • 网站seo优缺点网站建设公司咨
  • 网站设计需要会什么建设网站的目的以及意义
  • 怎么样推广自己的网站wordpress register_form
  • 网站公司建站凤翔网站建设
  • 网站建设协低价格的网站建设公司
  • 研发网站建设报价深圳网站建设前十名
  • 宠物发布网站模板wordpress中文免费电商模板
  • 济南做网站创意服装品牌策划公司
  • 本地电脑做视频网站 外网连接不上软件商城源码
  • 足球直播网站怎么做crm系统介绍
  • 株洲网站建设联系方式东莞凤岗网站制作
  • 小纯洁网站开发如何注册域名
  • 网上做试卷的网站如何把刚做的网站被百度抓取到
  • 滕州网站建wordpress用户中心按钮不弹出
  • 清远新闻最新消息福建seo搜索引擎优化
  • 凡客建站网微信网站怎么做的
  • 网站建设费怎么写会计科目行业网站建设公司
  • 网站里的友情链接网站建设个人简历的网页
  • 佛山自助建站软件湖南seo优化推荐
  • 免费微信微网站模板下载不了优化人员配置
  • wordpress 导航网站主题画流程图的网站
  • 皮卡剧网站怎样做排名网
  • 网站开发 兼职哪个网站是做安全教育
  • 商品展示类网站怎么用群晖nas做网站
  • 长腿蜘蛛wordpresssem优化推广
  • 中国铁路建设监理协会官方网站深圳福田区怎么样
  • 互联网网站开发发展wordpress文章自定义栏目
  • 众筹网站平台建设工信部网站备案系统
  • 网站301重定向代码wordpress 加子目录
  • 淄博网站制作优化推广asp做学生信息网站