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

广州品牌网站谷歌浏览器下载电脑版

广州品牌网站,谷歌浏览器下载电脑版,建设菠菜网站,华企在线网站建设aws(学习笔记第二十一课) 开发lambda应用程序 学习内容: lambda的整体概念开发lambda应用程序 1. lambda的整体概念 借助AWS Lambda,无需预置或管理服务器即可运行代码。只需为使用的计算时间付费。借助 Lambda,可以为几乎任何类型的应用进…

aws(学习笔记第二十一课)

  • 开发lambda应用程序

学习内容:

  • lambda的整体概念
  • 开发lambda应用程序

1. lambda的整体概念

借助AWS Lambda,无需预置或管理服务器即可运行代码。只需为使用的计算时间付费。借助 Lambda,可以为几乎任何类型的应用进程或后端服务运行代码 - 所有这些都无需管理。上传代码后,Lambda 会处理运行和扩展具有高可用性的代码所需的一切。您可以将代码设置为从其他 AWS 服务自动触发,或直接从任何 Web 或移动应用进程调用。

  • lambda的使用方式
    • 作为事件驱动的计算资源时,Lambda 可以响应事件时运行代码
      在这里插入图片描述
    • 作为计算服务时,可以响应API Gateway或者API调用的HTTP请求时运行代码
      在这里插入图片描述

2. 开发lambda应用程序

  1. 开发第一个lambda应用程序hello,world
    • 创建函数
      选择nodejs平台执行。
      在这里插入图片描述
    • 为了权限,设定role
      在这里插入图片描述
    • 测试
      在这里插入图片描述
      点击测试按钮,执行测试。
      在这里插入图片描述
  2. 开发另一个lambda应用程序,使用tag过滤对EC2进行开启和停止控制
    • 作成一个EC2,作为lambda函数控制的目标
      在这里插入图片描述
    • 为了执行权限,通过赋予给lambda特定的role
      • role的策略
        这里有两个权限,
        • 一个是logs的权限,主要是输出lambdalog需要的权限。这个是lambda的必须策略
        • 另一个是ec2,主要是控制ec2的时候需要的权限
        {"Version": "2012-10-17","Statement": [{"Effect": "Allow","Action": ["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Resource": "arn:aws:logs:*:*:*"},{"Effect": "Allow","Action": ["ec2:DescribeInstances","ec2:Start*","ec2:Stop*","ec2:DescribeInstanceStatus"],"Resource": "*"}]
        }
        
    • role的信任关系
      因为这个role需要给lambda执行需要,所以需要建立信任关系。
      {"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": "lambda.amazonaws.com"},"Action": "sts:AssumeRole"}]
      }
      
      在这里插入图片描述
    • 开始创建lambda函数
      权限这里执行lambda-role,来给lambda函数赋予执行权限。
      在这里插入图片描述
    • 成功创建lambda函数
      在这里插入图片描述
    • lambda函数的实例程序代码
      import os
      import boto3
      import loggingDEFAULT_TAGS = os.environ.get("DEFAULT_TAGS")
      print("DEFAULT_TAGS", DEFAULT_TAGS)logger = logging.getLogger()
      level = logging.getLevelName(os.environ.get("LOG_LEVEL", "INFO"))
      print("Logging level -- ", level)
      logger.setLevel(level)ec2_resource = boto3.resource('ec2')
      ec2_client = boto3.client('ec2')def lambda_handler(event, context):"""Function that start and stop ec2 instances schedule and with specific tags<br/>:param event: Input event, that should contain action and tags parameters, where tags is a list of comma separates key/value tags.<br/>:param context: Lambda context.<br/>:return: nothing"""logger.debug(event)print("event -- ", event)tags = get_tags(event['tags'] if 'tags' in event else DEFAULT_TAGS)print("tags -- ", tags)instances = get_instances_by_tags(tags)if not instances:logger.warning('No instances available with this tags')else:if event['action'] == 'start':ec2_client.start_instances(InstanceIds=instances)logger.info('Starting instances.')elif event['action'] == 'stop':ec2_client.stop_instances(InstanceIds=instances)logger.info('Stopping instances.')else:logger.warning('No instances availables with this tags')def get_tags(tags):"""Method that split comma separated tags and return a formed tags filter<br/>:param tags: Comma separated string with the tags values.<br/>:return: tags structure"""final_tags = []split_tags = tags.split(",")for tag in split_tags:values = tag.split('=')final_tags.append({'Name': values[0],'Values': [values[1]]})return final_tagsdef get_instances_by_tags(tags):"""Method that filter all ec2 instances and return only the instances with specific tags<br/>:param tags: Filter structure with tag values.<br/>:return: list of ec2 instances"""response = ec2_resource.instances.filter(Filters=tags)print("Response -- ", response)for instance in response:print("Instance -- ", instance)intance_ids = [instance.id for instance in response]print("intance_ids -- ", intance_ids)return intance_ids
      
    • 点击deploy对函数的代码进行部署
      可以看出这里是一个vscode风格的在线代码编辑器
      在这里插入图片描述
    • lambda函数进行环境变量的设定
      • 代码中使用`DEFAULT_TAGS = os.environ.get(“DEFAULT_TAGS”)得到环境变量,所以这里需要定义
      • tag:Name:lambda-ec2是标准的aws定义tag的方式
        在这里插入图片描述
    • 回到lambda的测试,编辑event参数
      在这里插入图片描述
    • 进行测试
      在这里插入图片描述
    • 检查ec2的状态
      在这里插入图片描述
    • 检查CloudWatch,可以看到lambda函数的log
      在这里插入图片描述
http://www.hkea.cn/news/767029/

相关文章:

  • 哪里有网站设计公司长沙网络公司最新消息
  • 试描述一下网站建设的基本流程百度怎么发布短视频
  • 我现在有域名怎么做网站搜索关键词热度
  • 海外如何 淘宝网站建设快速seo整站优化排行
  • 代还信用卡网站建设赣州seo顾问
  • 响应式网站建设推广开网店
  • 成都专业网站推广公司优化大师优化项目有
  • 怎么用wordpress搭建网站百度关键词排名点
  • 外挂网站模板域名搜索引擎入口
  • 手机网站开发 pdfseo搜索引擎优化工作内容
  • 上海中小网站建设洛阳seo博客
  • 南宁网站建设公司哪家专业搜索引擎优化包括
  • 新疆住房与建设厅网站新产品推广方式有哪些
  • 做网站站怎么赚钱网络营销模式有哪些?
  • 南通城市建设集团有限公司网站南京谷歌推广
  • 南通网站定制方案怎么查找关键词排名
  • 权大师的网站是哪个公司做的百度做个人简介多少钱
  • 烟台网站建设设计软文广告经典案例100字
  • 做微信用什么网站广州百度seo代理
  • 网站建设目标 优帮云跨境电商营销推广
  • 郑州华恩科技做网站怎么样竞价排名适合百度吗
  • flask做大型网站开发深圳seo博客
  • 合肥网站建设平台小程序怎么引流推广
  • 做网站被拘留免费找客源软件
  • 门户型网站建设百度seo快速提升排名
  • 印度做杂质的网站如何进行网络推广
  • 建设厅八大员兴安盟新百度县seo快速排名
  • 南京网站建设索q.479185700小说排行榜百度
  • 幼儿做爰网站seo工程师是什么职业
  • 申请空间 建立网站吗西安百度推广运营