트위터 팔로워 수를 검색하는 데 사용되는 AWS Lambda 함수

소개👇


올해 제 목표 중 하나는 AWS를 더욱 잘 알고 최종적으로 인증을 받는 것입니다.그래서 나는 다른 것을 시도하고 여기에 블로그를 쓸 것이다.
AWS Lambda 함수를 배치하는 아주 간단한 작업부터 시작하겠습니다.이 예에서는 현재 트위터 팔로워의 수를 검색하는 데 사용되는 AWS Lambda 함수입니다.
AWS API 노드를 호출할 때마다 Python 스크립트를 실행합니다. 이 스크립트는 트위터 API에서 현재 통계 정보를 검색한 다음 JSON 형식으로 돌아와 시스템 전체에서 쉽게 사용할 수 있도록 합니다.
면책 성명: 저는 AWS 전문가가 아닙니다.그래서 나는 곳곳에서 최선의 실천을 사용하지 않을 것이다.

AWS Lambda 함수는 무엇입니까?🔶


문서에서 다음을 수행합니다.

AWS Lambda is a serverless compute service that runs your code in response to events and automatically manages the underlying compute resources for you.


AWS Lambda에서 실행되는 코드를 "Lambda 함수"라고 합니다.Lambda는 고가용성 계산 인프라에서 코드를 실행하고 계산 자원의 모든 관리를 수행합니다.예를 들어 서버 및 운영 체제 유지 보수, 용량 할당 및 자동 확장, 코드 및 보안 패치 배포, 코드 모니터링 및 로깅 등이 있습니다.
Lambda 함수를 만들고 배치할 때, 그것을 터치할 때 바로 실행할 수 있습니다.이 트리거들은 네가 직접 설치한 것이다.Lambda 함수를 트리거하는 데 사용할 수 있는 예:
  • Amazon API 게이트웨이를 통한 HTTP 요청
  • Amazon S3의 객체 수정
  • Amazon DynamoDB의 테이블 업데이트
  • AWS 계단식 함수의 상태 변환
  • 이 문서에서는 Amazon API 게이트웨이를 통한 첫 번째 HTTP 요청을 사용합니다.

    함수의 기초를 설정하다🆒


    Lambda 함수를 설정하려면 AWS 계정을 만들어야 합니다.기존 계정으로 로그인하거나 this link 을 사용하여 새 계정을 등록합니다.
    계정을 처음 설정한 후 메뉴'링크 서비스'를 누르고'계산'제목 아래에서 Lambda 링크를 누르십시오.
    왼쪽에서 작은 메뉴가 기능에 들어가는 것을 볼 수 있다.여기서 우리는 함수의 기반을 만들고 이름을 붙일 것입니다.잠시 후 AWS CLI 도구를 사용하여 명령줄에서 실제 Python 코드를 배포합니다.

    함수getTwitterFollowerCount를 명명하고 실행할 때 Python 3.8을 선택하십시오. 왜냐하면 우리는 잠시 후에 Python 코드를 사용하기 때문입니다.AWS Lambda는 사용 가능한 모든 주요 언어를 가지고 있기 때문에 원한다면 잠시 후 다른 언어를 쉽게 선택할 수 있습니다.
    권한 섹션에서 "기본 Lambda 권한이 있는 새 역할 만들기"라는 첫 번째 옵션을 선택하십시오.페이지의 오른쪽 상단으로 이동하여createfunction을 누르면 실제 함수를 만들 수 있습니다.
    첫 번째 AWS Lambda 함수 완성을 축하합니다!🏆

    새로운 기능 테스트✅


    좋아, 우리의 새로운 기능을 테스트할 때가 됐어.만약 모든 것이 정상이라면, 아래에 있는 것과 같은 기능이 있는 설정 패널을 볼 수 있습니다.

    함수 코드에서 보듯이 생성된 모든 함수는 Lambda 프로세서를 포함하여 샘플 코드를 첨부합니다.Lambda 프로세서는 코드의 함수입니다. AWS Lambda는 서비스가 코드를 실행할 때 이 함수를 호출할 수 있습니다.Python의 경우 일반 구문 구조는 다음과 같습니다.
    def handler_name(event, context): 
        ...
        return some_value
    
    항상 프로세서를 지정해야 합니다. 그렇지 않으면 함수가 실행되지 않고 구축 구축이 실패합니다.
    AWS 콘솔의 함수 코드에서 보듯이 함수를 만들 때 생성되는 기본 Lambda 프로세서는 다음과 같습니다.
    def lambda_handler(event, context):
        return {
            'statusCode': 200,
            'body': json.dumps('Hello from Lambda!')
        }
    
    여기서 무슨 일이 일어났는지 봅시다.Lambda 함수를 실행할 때마다 이 Python 함수를 실행하고 statuscode 200 와 JSON 응답을 되돌려줍니다. 즉, Hello from Lambda!테스트를 해볼 때가 됐어요!
    기능 구성 패널의 오른쪽 상단에 있는 테스트 버튼을 클릭합니다.너는 아래와 같은 팝업 창을 볼 수 있을 것이다.이 작은 테스트에서, 우리는 이곳의 모든 기본 설정을 사용할 수 있습니다.이벤트 이름 필드에 testEvent 만 입력하면 됩니다.완료되면 오른쪽 아래 모서리에서 생성을 클릭합니다.

    모두 완성하다.이제 함수에 대한 실제 테스트만 남았다.테스트 단추를 다시 눌러 아래의 출력을 보십시오.보시다시피 우리는 우리의 함수를 운행하고 우리의 JSON 응답을 얻었습니다. 아주 좋습니다!🔥
    Lambda 함수를 실행할 때마다 로그에서 사용할 수 있는 다른 정보를 찾을 수 있습니다.예를 들어 요청 ID, 실행 함수에 사용된 시간, 메모리 사용 상황 등이다.

    따라서 Lambda 함수를 만들고 테스트를 진행했습니다. 이제 실제 Python 함수를 작성할 때가 되었습니다. 이 함수는 트위터 API에서 현재 따라오는 사람의 계수에 대한 데이터를 검색하는 논리를 포함하고 있습니다.

    Python 코드 작성🐍


    좋습니다. 우리가 해야 할 첫 번째 일은 파이썬을 위한 가상 환경을 만드는 것입니다. 이렇게 하면 우리의 모든 가방이 이 환경에 포함되고 전체 설치가 아닙니다.설치되어 있는지 확인virtualenvpip.인터넷에는 이 방면에 관한 자원이 매우 많은데, 나는 여기서 토론하고 싶지 않다. 왜냐하면 이것은 본문의 범위를 초과했기 때문이다.
    명령줄을 통해 환경을 만듭니다.
    $ virtualenv -p python3.8 lambda
    
    컴퓨터에서 다른 Python 버전을 실행할 수 있습니다. 따라서 가상 환경을 만들 때 Python 버전을 명시적으로 지정하기 때문에 Lambda 함수의 Python 버전과 일치합니다.환경을 만든 후 활성화하여 cd 에 넣습니다.
    $ source lambda/bin/activate && cd lambda
    
    현재 lambda 폴더에 src 폴더를 만듭니다. 파이썬 코드와 cd 를 저장합니다.
    $ mkdir src && cd src
    
    실제 수행자 계수 데이터를 검색하기 위해 트위터 API의 Python 패키지를 사용합니다.다음과 같은 방법으로 설치할 수 있습니다.
    $ pip install python-twitter
    
    이제 새 Python 파일을 만들고 VS 코드를 시작합니다.
    $ code lambda_function.py
    
    트위터 API에 액세스하려면 API 자격 증명을 얻으려면 개발자 계정이 필요합니다.가서 하나를 만듭니다.이제 Python 파일에서 다음 코드 세그먼트를 사용합니다.
    import twitter
    
    def lambda_handler(event, context):
        CONSUMER_KEY = 'PMRxxgv52052lskdtgsd'
        CONSUMER_SECRET = 'RwiDbasg234lsdSADF235dkAJKIlcGCIcSI'
        ACCESS_TOKEN = '1074466481134323569-ciuXuhDGOIYHfnssaEFCXugPsN'
        ACCESS_TOKEN_SECRET = 'yAIASSldf43efdSXGsj888fghjdffgK68dd'
        SCREEN_NAME = 'rafrasenberg'
    
        # Create an Api instance.
        api = twitter.Api(consumer_key=CONSUMER_KEY,
                        consumer_secret=CONSUMER_SECRET,
                        access_token_key=ACCESS_TOKEN,
                        access_token_secret=ACCESS_TOKEN_SECRET)
    
        data = api.GetUser(screen_name=SCREEN_NAME)
    
    
        return { 
            'followers' : data.followers_count
        }
    
    변수를 트위터 핸들과 바꾸려면 인증서 (분명히 본문에서 가짜 인증서를 사용했습니다) 를 사용하십시오.파이썬 코드는 매우 간단합니다. 여기서 무슨 일이 일어났는지 간단하게 설명해 드리겠습니다.
  • 우리는 증명서
  • 로 API 실례를 만듭니다
  • 우리는 GetUser API 노드를 사용하여 트위터 핸들
  • 기반 데이터를 가져옵니다.
  • 트위터에서 받은 JSON 응답에서 한 사용자의 팔로워 수data.followers_count
  • 이 API 호출을 봉인lambda_handler에 봉인하고 자신의 JSON 응답
  • 으로 돌아갑니다
    Python 코드가 실행 중입니다. Lambda 함수로 돌아갑니다!

    AWS CLI를 통한 AWS Lambda 배포 패키지🔁


    이 섹션을 계속하려면 시스템에 AWS CLI가 설치되어 있는지 확인합니다.Check out the docs 서로 다른 운영체제에 어떻게 설치하는지 알기 위해서 나는 더 이상 군말을 하지 않는다.
    저희 Python 코드(Twitter API 패키지)에 외부 의존 항목이 있기 때문에 배포 패키지로 전환해야 합니다.Lambda API 관리 함수를 사용할 때나 AWS SDK를 제외한 라이브러리와 의존 항목을 포함해야 할 경우 이 기능이 필요합니다.배포 패키지는 기능 코드와 의존 항목을 포함하는 ZIP 압축 파일입니다.
    따라서 우리가 먼저 해야 할 일은 파이썬 코드의 모든 사이트 패키지를 압축하는 것이다.우선 폴더 구조를 검사합니다. 제 기계에서 기본 폴더(src 파일을 포함하는 가상 환경)는 ~/Development/lambda에 있습니다.다음 명령을 실행할 때 자신의 기계의 정확한 경로로 모든 ~/Development/lambda 부품을 교체하십시오.
    $ cd ~/Development/lambda/lib/python3.8/site-packages && zip -r9 ~/Development/lambda/src/function.zip . && cd ~/Development/lambda/src
    
    만약 모든 것이 순조롭다면, 현재 function.zip 폴더에 새로 생성된 src 파일이 있습니다.😄 이제 남은 것은 아래의 명령을 실행하여 기능 코드를 우리의 압축 파일에 추가하는 것이다.
    $ zip -g functions.zip lambda_function.py
    
    너무 좋아요.🏆 이제 Lambda에 배치할 수 있는 이진 ZIP 패키지가 생겼습니다.우리가 해야 할 일은 업데이트 명령을 실행하는 것이다.이전에 AWS 콘솔을 통해 만든 Lambda 함수를 사용하여 업데이트합니다.이를 위해 AWS CLI 명령aws lambda update-function-code을 사용합니다.함수 이름getTwitterFollowerCount과 ZIP 배포 패키지의 위치 등 두 가지 매개 변수를 추가했습니다.
    참고: 이전에 AWS 콘솔에서 Lambda 함수에 다른 이름을 지정한 경우 이 명령이 올바른 이름과 일치하도록 변경되었는지 확인하십시오.
    $ aws lambda update-function-code --function-name getTwitterFollowerCount --zip-file fileb://function.zip
    
    위의 명령을 실행하면 아래와 유사한 JSON 응답이 표시됩니다.
    {
        "FunctionName": "getTwitterFollowerCount",
        "FunctionArn": "arn:aws:lambda:eu-central-1:001533050737:function:getTwitterFollowerCount",
        "Runtime": "python3.8",
        "Role": "arn:aws:iam::001533050737:role/service-role/getTwitterFollowerCount-role-m8vxr9y6",
        "Handler": "lambda_function.lambda_handler",
        "CodeSize": 4996597,
        "Description": "",
        "Timeout": 3,
        "MemorySize": 128,
        "LastModified": "2020-08-29T11:47:52.701+0000",
        "CodeSha256": "0HPUHFxNWqu6xLl2NistRBoHp6FEBvnBFXnRXjfomXA=",
        "Version": "$LATEST",
        "TracingConfig": {
            "Mode": "PassThrough"
        },
        "RevisionId": "6c16c627-d4e2-4057-b38d-94cb16395f2f",
        "State": "Active",
        "LastUpdateStatus": "Successful"
    }
    

    API 게이트웨이 설정


    우리가 반드시 취해야 할 마지막 단계는 API 노드를 설정하는 것이다. 그러면 우리는 HTTP를 통해 실제 우리의 함수를 호출할 수 있다.AWS 콘솔 및 기능 구성 패널로 돌아갑니다.트리거 추가 버튼을 클릭합니다.

    아래 화면에서 다음 설정을 사용하고 Add 버튼을 클릭합니다.

    완성!🔥🏆


    이제 남은 것은 우리의 실제 HTTP 단점이 무엇인지 검사하고 그것을 테스트하여 모든 것이 정상인지 확인하는 것이다.대시보드 하단의 API 게이트웨이를 보고 Details를 눌러 확장합니다.보시다시피 API 끝점을 찾을 수 있습니다.

    명령줄을 시작하고 유사한 코드 테스트 응답을 사용합니다.
    $ curl 'https://4k1g4gaqz2.execute-api.eu-central-1.amazonaws.com/default/getTwitterFollowerCount'
    
    만약 모든 것이 순조롭다면, 당신은 단지 좋은 JSON 응답과 당신의 현재 팔로워 수를 받을 수 있을 것입니다!
    $ {
      "followers": 18311
    }
    
    간단한 완두콩, 레몬 진흙.현재 서버가 없는 AWS Lambda 함수를 실행할 수 있습니다. 서버가 필요 없이 어디서든 이 함수를 호출할 수 있습니다.경탄했어
    다음에 봐요.👋

    좋은 웹페이지 즐겨찾기