私のPCでAWS CDKを使いませんか?


久しぶりにメッセージ前回まで、過去の私を振り返り、技術的に(正確には雑多な…)部分を整理したら、この文章から、これから使いたい技術部分を自分なりに整理していきます.(実は、知り合いに何を勉強すればいいのか聞いたことがありますが、これは勧められて勉強する内容によって、半強制的にやろうと思っています.^^;)
短い時間でしたが、PythonベースのDjango Frameworkはサービス開発経験があり、Javascript以降よく知られている言語なので、これに基づいて何を学ぶかを考え、サーバレンタルのマイクロアーキテクチャを考えました.AWSコンソール以外にもLambdaでコードを記述する方法があるかどうかを考え、AWSが提供するCDKを利用してLambdaに配備できるのはこれです!考えてみて、勉強したいです.
(つまり、今日のテーマはCDK for Python+CloudFormation+Lambda+API Gateway…テーマ範囲が広すぎて…今期はCDKのみのインストールです.)
まずはグーグルでCDKとは何かを頑張ってみて、私より早く整理してくれた人が多すぎたので、その内容を参考に整理してみました.
(ソースバーのURL情報を参照してください.^^)

CDK定義


クラウド開発キットの略はクラウド開発ツールです.
インフラストラクチャは、Terraform、AWS CloudFormationなどのコード(IaC)サービスの一種である.
(IaCについて何も知らないので、もう一度グーグル化した結果、「コード管理インフラストラクチャ」を発見しました.したがって、CDKが提供するコードを使用して、クラウドインフラストラクチャを整理できます.考えました.詳しくはAWS韓国の金賢秀ソリューションアーキテクチャが発表したビデオを参照してください.整理が行き届いていました.^^)
https://youtu.be/hOJbhfF0DYQ

では、CDKを使用してインフラストラクチャを管理する方法は?


CDKでは、次のコマンドを使用してインフラストラクチャを管理できます.
cdk deploy [stack_name|~*~] - cloudFormation을 통해 테스트 또는 프로덕션에 was cdk 어플리케이션 배포
cdk destory [stack_name|~*~] - 스택 삭제
cdk synth - aws cdk 어플리케이션을 cloudFormation 템플릿으로 컴파일하여 인프라 동기화
わあ、上のコマンドで私が望んでいるインフラストラクチャに自動的に配置しますか?どうしようかな?思い出した.もちろん、以下のコマンドで構成を自動的に生成できます.
(もちろん、GITのように、私が書いたコードと現在のインフラストラクチャの内容の違いを理解することもできます.AWS賛~)
cdk bootstrap - aws 환경에 cdk toolkit을 위한 스택 배포
cdk init - 사용자가 선택한 기본 어플리케이션으로 초기화
cdk diff - 로컬 aws cdk코드와  aws 에서 실행되는 어플리케이션간 차이점 확인

では、組織しましょう。マイコンピュータ


だからCDKを私のPCに配置するためにまたグーグル...しかし、一般的なブログではAWSのCloud 9を使って作成された例が多く絶望に陥りそうになり、PCで設定できるブログを探して関連コンテンツに合わせて設定することにした.
(言語はPython、オペレーティングシステムはMac)
1.AWS CLIのインストール
//python 설치 
brew install python

//aws cli 설치
brew install awscli
  • IAMアカウントの作成
    (IAMアカウントの作成方法がよくわかりますので、画像のみを使用して結果を置き換えます.)
  • 1. aws console login
    2. aws IAM 클릭 후 계정 생성
    3. 계정 생성 후 보안자격증명->엑세스키 생성

    awsを
  • PCに接続
    (上のイメージで作成したアカウントのEXSESKIを使用して、私のPCをawsにアクセスするように設定します.)
  • aws configure
    AWS Access Key ID [None]: [Your-Key-ID]
    AWS Secret Access Key [None]:[Your-AccessKey]
    Default region name [None]: [Your-Region]
    Default output format [None]: [option]
  • AWS-CDK install
  • brew install aws-cdk
  • のPCにプロジェクトフォルダとファイル
  • を作成する
    mkdir [Your Project Name]
    cd [Your Project Name]
    cdk init [PROJECT NAME] --language Python
    pip install -r requirements.txt
    これにより、CDKは以下のようにアイテムを自動的に構成します.

    では、インストール作業は完了します.

    ふろく


    Lambdaの作成方法


    生成されたプロジェクトにLambdaにアップロードするフォルダとファイルを作成します.
    mkdir f_lambda
    cd f_lambda
    mkdir test.py

    2.ファイルに必要な機能を作成する
    3. [Your-Project]_stack.pyでlambdaに配布するコンテンツを作成する
    from constructs import Construct
    from aws_cdk import (
        Stack,
        aws_lambda as _lambda,
    )
    
    class YourProjectStack(Stack):
    
        def __init__(self, scope: Construct, id: str, **kwargs) -> None:
            super().__init__(scope, id, **kwargs)
    
            # Defines an AWS Lambda resource
            my_lambda = _lambda.Function(
                self, 'TestHandler',
                runtime=_lambda.Runtime.[Your-Python-Version],
                code=_lambda.Code.from_asset('lambda'),
                handler='test.main',
            )
    4.後でcdkコマンドを使用して配布すればよい.

    コードからAWSにアクセスする方法


    もちろん、PythonはAWSを使用するためにBoto 3ライブラリを提供しています.対応するlibを受信すると、AWSにアクセスしたいソリューションを満たすコードを作成できます.
    pip install boto3
    test.pyファイルでs 3 bucketのコードをクエリーする(例)
    import boto3
    
    def s3_list():
            s3 = boto3.resource('s3')
            result = []
            for bucket in s3.buckets.all():
                result.append(bucket.name)
            
            return result
            

    vscodeでデバッグ


    デフォルトでは、CDKは、pytest libraryを使用してセルテストを行うためにRequirement-dev.txtで定義されています.ただし、vscodeでデバッグを使用すると、内部データを表示したい場合があります.拡張プラグインからPython Extension Packをダウンロードすると、左側にテストアイコンが作成され、クリックすると左側にpytest可能なリストが表示されます.ここで私が書いたテストコードをデバッグすればいいです.

    参照先:


    https://dev.classmethod.jp/articles/aws-cdk-intro-kor/
    https://www.redhat.com/ko/topics/automation/what-is-infrastructure-as-code-iac
    https://medium.com/@sindepal/aws-cdk-basic-guide-239b76d4f72c