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

广州国外建站模板南宁百度seo价格

广州国外建站模板,南宁百度seo价格,网站ftp有什么用,做个简单的导航网站文章目录 aws(学习笔记第三十二课) 深入使用cdk学习内容:1. 使用aws API Gatewaylambda1.1. 以前的练习1.2. 使用cdk创建API Gateway lambda1.3. 确认cdk创建API Gateway lambda 2. 使用event bridge练习producer和consumer2.1. 代码链接2.2. 开始练习2.3. 代码部…

文章目录

  • aws(学习笔记第三十二课) 深入使用cdk
  • 学习内容:
    • 1. 使用`aws API Gateway`+`lambda`
      • 1.1. 以前的练习
      • 1.2. 使用`cdk`创建`API Gateway` + `lambda`
      • 1.3. 确认`cdk`创建`API Gateway` + `lambda`
    • 2. 使用`event bridge`练习`producer`和`consumer`
      • 2.1. 代码链接
      • 2.2. 开始练习
      • 2.3. 代码部署的确认
      • 2.4. 对部署进行测试

aws(学习笔记第三十二课) 深入使用cdk

  • 使用cdk生成aws API Gateway+lambda以及eventbridge等等

学习内容:

  • 使用aws API Gateway+lambda
  • 使用event bridge练习producerconsumer

1. 使用aws API Gateway+lambda

1.1. 以前的练习

  • 以前的例子
    API Gateway + lambda这个例子中已经使用了手动创建,使用练习了aws API Gateway+lambda
  • 使用cdk来创建
    这里,采用cdk的方式来创建API Gateway + lambda
    代码链接 api-cors-lambda

1.2. 使用cdk创建API Gateway + lambda

  • 整体架构
    在这里插入图片描述
  • 代码解析
    • 创建lambda函数
      	   base_lambda = _lambda.Function(self, 'ApiCorsLambda',handler='lambda-handler.handler',runtime=_lambda.Runtime.PYTHON_3_12,code=_lambda.Code.from_asset('lambda'))
      
      注意,这里没有创建VPC,因为这里不需要显示的创建VPC
      在这里插入图片描述
      • 创建API并且添加resource

                base_api = _apigw.RestApi(self, 'ApiGatewayWithCors',rest_api_name='ApiGatewayWithCors')example_entity = base_api.root.add_resource('example',default_cors_preflight_options=_apigw.CorsOptions(allow_methods=['GET', 'OPTIONS'],allow_origins=_apigw.Cors.ALL_ORIGINS)
        

        在这里插入图片描述

      • 创建LambdaIntegrationAPIlambda进行绑定

              example_entity_lambda_integration = _apigw.LambdaIntegration(base_lambda,proxy=False,integration_responses=[_apigw.IntegrationResponse(status_code="200",response_parameters={'method.response.header.Access-Control-Allow-Origin': "'*'"})])
        

        在这里插入图片描述

      • API加入method

              example_entity.add_method('GET', example_entity_lambda_integration,method_responses=[_apigw.MethodResponse(status_code="200",response_parameters={'method.response.header.Access-Control-Allow-Origin': True})])
        

        在这里插入图片描述

1.3. 确认cdk创建API Gateway + lambda

  • 执行创建的cdk
    	cdk --require-approval never deploy
    
  • 查看创建的结果
    • lambda创建结果
      在这里插入图片描述

    • API创建结果
      在这里插入图片描述

    • 确认API的调用URL
      在这里插入图片描述

    • 访问API的调用URL
      之后不要忘记cdk destroy
      在这里插入图片描述

2. 使用event bridge练习producerconsumer

2.1. 代码链接

api-eventbridge-lambda的代码链接
这里主要练习使用eventbridge,进行producerconsumer的练习。

2.2. 开始练习

  • 整体架构
    在这里插入图片描述
  • 代码解析
    • 生成producer

      			        ## Producer Lambda#event_producer_lambda = _lambda.Function(self, "eventProducerLambda",runtime=_lambda.Runtime.PYTHON_3_12,handler="event_producer_lambda.lambda_handler",code=_lambda.Code.from_asset("lambda"))event_policy = iam.PolicyStatement(effect=iam.Effect.ALLOW, resources=['*'], actions=['events:PutEvents'])event_producer_lambda.add_to_role_policy(event_policy)
      

      这里,producer被赋予权限putEvents,因为之后要向eventbridge进行putEvents操作。
      在这里插入图片描述

    • producer的处理代码

      	def lambda_handler(event, context):eventbridge_client = boto3.client('events')request_body = event["body"]if request_body is None:request_body = ""# Structure of EventBridge Eventeventbridge_event = {'Time': datetime.datetime.now(),'Source': 'com.mycompany.myapp','Detail': request_body,'DetailType': 'service_status'}logger.info(eventbridge_event)# Send event to EventBridgeresponse = eventbridge_client.put_events(Entries=[eventbridge_event])logger.info(response)# Returns success reponse to API Gatewayreturn {"statusCode": 200,"body": json.dumps({"result": "from Producer"}),}
      

      这里,使用了boto3这个python package,AWS ‌Boto3‌ 是亚马逊云服务(AWS)官方提供的 Python SDK,主要用于通过代码与 AWS 服务进行交互和管理。这里使用boto3eventbridge进行putEvents

    • consumer1consumer2

      			        ## Approved Consumer1#event_consumer1_lambda = _lambda.Function(self, "eventConsumer1Lambda",runtime=_lambda.Runtime.PYTHON_3_8,handler="event_consumer_lambda.lambda_handler",code=_lambda.Code.from_asset("lambda"))event_consumer1_rule = events.Rule(self, 'eventConsumer1LambdaRule',description='Approved Transactions',event_pattern=events.EventPattern(source=['com.mycompany.myapp']))event_consumer1_rule.add_target(targets.LambdaFunction(handler=event_consumer1_lambda))## Approved Consumer2#event_consumer2_lambda = _lambda.Function(self, "eventConsumer2Lambda",runtime=_lambda.Runtime.PYTHON_3_8,handler="event_consumer_lambda.lambda_handler",code=_lambda.Code.from_asset("lambda"))event_consumer2_rule = events.Rule(self, 'eventConsumer2LambdaRule',description='Approved Transactions',event_pattern=events.EventPattern(source=['com.mycompany.myapp']))event_consumer2_rule.add_target(targets.LambdaFunction(handler=event_consumer2_lambda))
      

      consumer1consumer2类似,就是接受到了eventbridgeevent之后,进行log输出。

      			def lambda_handler(event, context):logger.info(event)return {"statusCode": 200,"body": json.dumps({"result": "testing..."}),}
      

      在这里插入图片描述

    • consumer3使用kinesisfirehoseevent进行接受,并保存到S3 bucket

      	        ## Approved Consumer3## Create S3 bucket for KinesisFirehose destinationingest_bucket = s3.Bucket(self, 'test-ngest-bucket')# Create a Role for KinesisFirehosefirehose_role = iam.Role(self, 'myRole',assumed_by=iam.ServicePrincipal('firehose.amazonaws.com'))# Create and attach policy that gives permissions to write in to the S3 bucket.iam.Policy(self, 's3_attr',policy_name='s3kinesis',statements=[iam.PolicyStatement(actions=['s3:*'],resources=['arn:aws:s3:::' + ingest_bucket.bucket_name + '/*'])],# resources=['*'])],roles=[firehose_role],)event_consumer3_kinesisfirehose = _firehose.CfnDeliveryStream(self, "consumer3-firehose",s3_destination_configuration=_firehose.CfnDeliveryStream.S3DestinationConfigurationProperty(bucket_arn=ingest_bucket.bucket_arn,buffering_hints=_firehose.CfnDeliveryStream.BufferingHintsProperty(interval_in_seconds=60),compression_format="UNCOMPRESSED",role_arn=firehose_role.role_arn))event_consumer3_rule = events.Rule(self, 'eventConsumer3KinesisRule',description='Approved Transactions',event_pattern=events.EventPattern(source=['com.mycompany.myapp']))event_consumer3_rule.add_target(targets.KinesisFirehoseStream(stream=event_consumer3_kinesisfirehose))
      

      在这里插入图片描述

    • producer通过API Gateway进行公开

      	        # defines an API Gateway REST API resource backed by our "atm_producer_lambda" function.api = api_gw.LambdaRestApi(self, 'SampleAPI-EventBridge-Multi-Consumer',handler=event_producer_lambda,proxy=False)items = api.root.add_resource("items")items.add_method("POST")  # POST /items
      

2.3. 代码部署的确认

接下来进行cdk deploy来确认执行效果。

  • 一个producer与两个consumer,都是lambda
    在这里插入图片描述
  • 第三个consumer,一个kinesisFireHose
    在这里插入图片描述
  • APIproducer
    在这里插入图片描述

2.4. 对部署进行测试

  • API进行测试调用
    返回了正常的结果。这里,需要对请求正文request body一定要设定参数这里设置如下。
    {"item1":"123","item2":"234"}
    
    使用API调用,之后启动producerlamdba,向eventbridge进行putEvents
    在这里插入图片描述
  • consumer1consumer2进行确认
    在这里插入图片描述
  • consumer3进行确认
    这里主要是对S3 bucket进行确认。可以看到,
    producer -> event -> eventbridge -> consumer3 -> kinesis firehose -> S3 bucket
    最后cdk destroy

在这里插入图片描述


文章转载自:

http://L0ngzJCY.pdgqf.cn
http://kAVcF9h6.pdgqf.cn
http://pbemcTj8.pdgqf.cn
http://XpUqVcVL.pdgqf.cn
http://wzyDxuyQ.pdgqf.cn
http://rfbPlm3N.pdgqf.cn
http://d5Ono04n.pdgqf.cn
http://M3gZvNtK.pdgqf.cn
http://SjpyS051.pdgqf.cn
http://0hj7znEP.pdgqf.cn
http://nMqdhneW.pdgqf.cn
http://ZFn3ccOo.pdgqf.cn
http://lj5JNrUN.pdgqf.cn
http://OoowvSXK.pdgqf.cn
http://pmWPQpys.pdgqf.cn
http://9kAgMMaS.pdgqf.cn
http://B2gNuLvi.pdgqf.cn
http://MjIbPq4c.pdgqf.cn
http://PDNlgloy.pdgqf.cn
http://EQ9JEtiV.pdgqf.cn
http://6eFY5FYk.pdgqf.cn
http://N9bOmzdf.pdgqf.cn
http://XdTp9bI8.pdgqf.cn
http://u3cIyzkH.pdgqf.cn
http://oCZgUmHw.pdgqf.cn
http://gUsrehuh.pdgqf.cn
http://YREFVz8H.pdgqf.cn
http://LJhHMTcH.pdgqf.cn
http://6YySpTYq.pdgqf.cn
http://pXPXhZuF.pdgqf.cn
http://www.dtcms.com/wzjs/707382.html

相关文章:

  • 免费发布项目的网站网站专题制作 公司
  • 新乡建设公司网站网站管理建设落实报告
  • 网站数据库管理系统t恤在线设计网站
  • 一个网站开发的假设apache与iis做网站
  • 苏州网站建设方式成都电子商务网站建站
  • 常州本地网站古镇建网站公司
  • 相应式手机网站建设贵州网站推广优化
  • 济南的网站建设公司哪家好山西太原网站建设
  • 张家界建设局网站电话装修网络公司
  • 用国外服务器做网站网站推广 经典案例
  • 承德 网站建设 网络推广 网页设计高中男女做那个视频网站
  • 租网站需要多少钱动漫风格网站
  • 国外网站用什么dns长春经济技术开发区人才网
  • 做网站的说3年3年包括什么软件wordpress cos
  • 拖拽式建站商场装修
  • jsp体育用品网站建设网站制作案例效果
  • 建网站素材wordpress仿都市头条
  • 免费大数据查询平台网站首页关键词优化
  • 廊坊seo网站排名网站建设申请域名
  • 找工程项目郑州网站优化培训
  • 云虚拟主机和网站建设wordpress预览word
  • 成都网站开发 优帮云网页编辑平台
  • 上海工信部网站备案百度网站排名抓取规则
  • 服务器怎么用数据库建设网站asp网站 上传空间
  • 宝安网站制作网站建设深圳 网站制作需要多少钱 网络服务
  • 网站怎么备份怎么看网站空间多大
  • 网站技术维护费付运费送东西的网站怎么做6
  • 网络营销方案策划报告搜索引擎优化网站
  • 有哪些网站免费做推广787878域名
  • 做网站在哪哈尔滨网站建设赚钱么