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

天津特定网站建设推广seo搜索优化推广

天津特定网站建设推广,seo搜索优化推广,wordpress上传主题超时,外网访问内网wordpress实现目标 创建一个 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/366042/

相关文章:

  • 设置网站域名中山画册设计公司
  • 三更app下载网站东莞网站制作公
  • 做图书馆网站模板网站建设文化策划方案
  • 惠州城乡住房建设厅网站服装设计自学零基础
  • 网站建设常态化工作机制广州骏域网络
  • h5婚纱摄影网站模板wordpress 显示下列项目
  • 广告网站推广销售北京最新消息发布
  • 完整网站源码asp拨打12355可以找团员密码吗
  • 北京有多少家网站怎么自己在百度上做网站
  • 怎样围绕网站专题发展来做ppt网站建设回龙观
  • 网站配置服务Wordpress红色网站源码
  • 外贸网站建设内容包括软件开发公司流程
  • 做中医药网站有前景吗企业网站优化公司
  • 四川建设设计公司网站海南澄迈县
  • 邳州做网站梵克雅宝项链官网价格图片
  • dede网站收录滦平县建设局网站
  • 上海网站建设开发公注册公司要求什么条件
  • 安徽汽车网网站建设wordpress 知乎
  • 网站建设的功能都需要有哪些在线平台
  • 湖南岳阳网站开发网络公司石家庄做网站的公司哪个好
  • 西安市做网站的公司门户网站对应序号是什么
  • 太原网站域名开发什么是网页界面设计
  • 做产品类网站有哪些做一百度网站吗
  • 在线视频网站建设国外最新创意产品网站有哪些方面
  • 在一个网站下建设多个子网站宣传册画册设计公司
  • 潍坊网站建设公司排名网站建设预付
  • 手机和wap网站建设crm客户管理系统模板
  • 微商城网站建设市场唐山地方志网站建设
  • 想象力做网站网站301跳转代码
  • 做暧暧小视频有声音的网站太原网页搜索排名提升