您的位置:首页 > 健康 > 养生 > 北京网站建站模板_国外app开发公司_域名批量查询工具_网站友情链接怎么添加

北京网站建站模板_国外app开发公司_域名批量查询工具_网站友情链接怎么添加

2025/3/4 22:40:17 来源:https://blog.csdn.net/sealaugh1980/article/details/144490887  浏览:    关键词:北京网站建站模板_国外app开发公司_域名批量查询工具_网站友情链接怎么添加
北京网站建站模板_国外app开发公司_域名批量查询工具_网站友情链接怎么添加

aws(学习笔记第十八课)

  • 使用aws cdk(python)进行部署

学习内容:

  • 使用aws cdk(python)进行部署
  • 整体代码(python的通常工程)
  • 代码动作

1. 使用aws cdk(python)进行部署

  • aws cdk的整体架构
    前面使用了cloudformation进行了jsonaws的各种组件的定义和使用,但是对于熟悉开发语言程序员,不能进行灵活的使用开发语言(python,nodejs,java等等)进行灵活的aws组件的定义部署,实在是不能接受的,aws cdk满足了这方面的要求。
    使用aws cdk,可以使用各种熟悉的语言就行aws的部署,另外还避免了aws cloudformation的复杂json的代码编写。但是,底层来说,aws cdk还是会将写出的aws配置,最终转换成cloudformation,进行部署。在这里插入图片描述

2. 整体代码(python的通常工程)

python为基础语言,开始开发aws cdk

  1. 环境准备
    需要以下的软件准备。

    • AWS CLI #最终执行的aws cdk的底层命令
    • AWS Account and User #最终执行的aws cdk的用户
    • Node.js #使用Node.js安装cdk
    • IDE for your programming language # 一般使用vs code
    • AWS CDK Toolkit # cdk的命令安装
    • Python # cdk的开发语言
  2. 各种软件安装详细

    • aws cli
      aws cli可以使用installer来安装。 在这里插入图片描述

    aws cli installer

    • AWS Account and User
      这里需要创建用户,用来执行cdk
      在这里插入图片描述

    • Node.js
      nodejs
      在这里插入图片描述

    • IDE for your programming language # 一般使用vs code
      这个比较通用,省略安装步骤。

    • AWS CDK Toolkit # cdk的安装

      npm install -g aws-cdk
      

      在这里插入图片描述

    • Python # cdk的开发语言
      安装开发语言Python
      python downloads

  3. 开始简单的aws cdk程序开发

    • 程序文件夹作成(使用git bash中执行)
      注意,没有特殊说明,执行的命令都是在项目的文件夹下
      mkdir finlay_20241215 && cd finlay_20241215
      
    • 激活virtual environment venv
      python -m venv .venv
      source .venv/Scripts/activate
      
    • 作成cdk的工程
      cdk init app --language python
      
    • pipdownload url指向aliyun阿里云
      pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
      pip config set install.trusted-host mirrors.aliyun.com
      
    • 编写cdkpython代码(finlay_20241215/app.py)
      #!/usr/bin/env python3
      import os
      import aws_cdk as cdk
      from aws_cdk import (aws_ec2 as ec2,Stack
      )
      from constructs import Construct
      from finlay_20241215.finlay_20241215_stack import Finlay20241215Stack
      app = cdk.App()
      class Finlay20241215Stack(Stack):def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:super().__init__(scope, construct_id, **kwargs)# VPCmy_vpc = ec2.Vpc(self,id="my-vpc",cidr="192.168.0.0/16",nat_gateways=0, # NatGatewayを作成しない指定subnet_configuration=[ec2.SubnetConfiguration(name="my-public-subnet",subnet_type=ec2.SubnetType.PUBLIC,cidr_mask=24)])# security groupmy_ec2_security_group = ec2.SecurityGroup(self,id="my-ec2-sg",vpc=my_vpc,allow_all_outbound=True,security_group_name="my-ec2-sg")# add ingress rulemy_ec2_security_group.add_ingress_rule(peer=ec2.Peer.ipv4("0.0.0.0/0"),connection=ec2.Port.tcp(22),description="allow ssh access")#  set amiamzn_linux = ec2.MachineImage.latest_amazon_linux(generation=ec2.AmazonLinuxGeneration.AMAZON_LINUX,edition=ec2.AmazonLinuxEdition.STANDARD,virtualization=ec2.AmazonLinuxVirt.HVM,storage=ec2.AmazonLinuxStorage.GENERAL_PURPOSE,cpu_type=ec2.AmazonLinuxCpuType.X86_64)# launch ec2 instancemy_ec2_instance = ec2.Instance(self,id="my-ec2-instance",instance_type=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2,ec2.InstanceSize.MICRO),machine_image=amzn_linux,vpc=my_vpc,vpc_subnets=ec2.SubnetSelection(subnet_type=ec2.SubnetType.PUBLIC),instance_name="my-ec2-instance",security_group=my_ec2_security_group)
      Finlay20241215Stack(app, "Finlay20241215Stack")
      app.synth()
      
    • pip导入必须要的cdk依赖包
      pip install -r requirements.txt
      
    • 执行cdk diff查看将要进行的cdk执行的差分
      cdk diff
      

    在这里插入图片描述

3. 代码动作

  1. 执行cdk bootstrap
    默认aws下,是没有执行cdk所需要的role的,第一次需要执行cdk bootstrap
    cdk bootstrap
    
    在这里插入图片描述
    之后检查awsrole作成情况。
    在这里插入图片描述
  2. aws cli的用户附上权限
    这里,虽然已经自动生成了role来表示能够执行cdk,但是aws cli的执行用户还是没有能够sts:AssumeRoleassume这些role的权限。需要继续准备。
    • 选择aws cli用户,添加权限
      在这里插入图片描述
      这里,选择创建内联权限
      在这里插入图片描述
      选择JSON直接进行编辑
      在这里插入图片描述
      权限JSON代码
      {"Version": "2012-10-17","Statement": [{"Effect": "Allow","Action": ["sts:AssumeRole"],"Resource": ["arn:aws:iam::*:role/cdk-*"]}]
      }
      

在这里插入图片描述
至此,aws cli的当前用户就能够执行cdk-开头的role,有权限执行aws cdk

  1. 执行deploy
    cdk --require-approval never deploy
    
    默认需要承认(approval),会导致不执行部署,这里设置成--require-approval never

在这里插入图片描述
可以看到,这里还是通过cloudformation底层来实现aws服务的部署。
在这里插入图片描述
进入cloudformation之后,看到会出现stack
在这里插入图片描述
检查ec2 instance
在这里插入图片描述
最后清理cloudformation

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com