AWS CLI를 사용하여 생성 및 배포

AWS CLIAWS 서비스 작업에 도움이되는 명령 줄 도구입니다. AWS Lambda 함수를 생성, 업데이트, 삭제, 호출하는 데 사용할 수 있습니다. 이 장에서는 AWS CLI의 설치 및 사용에 대해 자세히 설명합니다.

AWS CLI 설치

이 섹션에서는 다양한 운영 체제에 AWS CLI를 설치하는 방법을 안내합니다. 주어진 단계를 따르고 첨부 된 모든 스크린 샷을 관찰하십시오.

Windows의 경우

Windows 구성을 확인하고 AWS CLI MSI를 설치하려면 다음 링크 중 하나를 선택하십시오.

  • Windows 64 비트의 경우 − Windows 용 AWS CLI MSI 설치 (64 비트)

  • Windows 32 비트의 경우 − Windows 용 AWS CLI MSI 설치 (32)

해당 링크를 선택하고 클릭하면 다음과 같은 창을 찾을 수 있습니다.

다음으로 Environment path in windows 아래 스크린 샷과 같이-

완료되면 명령 프롬프트에서 다음 명령을 사용하여 aws cli 설치되어 있습니다-

aws --version

다음 스크린 샷과 같이 aws-cli 버전의 세부 정보를 표시합니다.

Linux / Mac 용

Linux 및 Mac에 설치하려면 Python 2.6.3 이상 버전이 필요합니다. 그런 다음 추가 설치 프로세스를 위해 다음 명령을 사용하십시오.

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

이제 AWS 설정을 구성해야합니다. 이 목적으로 다음 명령을 사용할 수 있습니다.

aws configure

이를 위해 다음과 같은 세부 정보가 필요합니다.

  • AWS 액세스 키 ID
  • AWS 보안 액세스 키
  • 기본 지역 이름
  • 형식의 기본 출력

AWS 콘솔에서 이러한 세부 정보를 얻을 수 있습니다. 그림과 같이 오른쪽 상단의 계정 이름으로 이동하십시오-

이제 My Security Credentials왼쪽에서 사용자를 선택합니다. 요청에 따라 세부 정보와 함께 사용자를 추가합니다.

사용자를 추가하고 액세스 키와 비밀 키를 가져옵니다. 새 액세스 키를 보려면Show. 귀하의 자격 증명은 다음과 같습니다.

Access key ID − AOSAIOSFOCDD7Example

Secret access key − aJuirCVtnROUN/K7MDENG/bPxRfiCYExampleKEY

AWS CLIS에 대한 참조 명령

다음 표는 작업에 사용할 수있는 명령 참조를 제공합니다. aws cli.

aws cli 명령의 이름 명령 참조
create-function create-function --function-name <value> --runtime <value> --role <value> --handler <value> [--code <value>] [--description <value>] [--timeout < 값>] [--memory-size <값>] [--environment <값>] [--kms-key-arn <값>] [--tags <값>] [--zip-file <값> ] [--cli-input-json <값>]
list-functions list-functions [--master-region <값>] [--function-version <값>] [--max-items <값>] [--cli-input-json <값>] [--starting- 토큰 <값>] [--page-size <값>] [--generate-cli-skeleton <값>]
get-function get-function --function-name <값> [--qualifier <값>] [--cli-input-json <값>] [--generate-cli-skeleton <값>]
get-function-configuration get-function-configuration --function-name <값> [--qualifier <값>] [--cli-input-json <값>] [--generate-cli-skeleton <값>]
get-account-settings get-account-settings [--cli-input-json <값>] [--generate-cli-skeleton <값>]
update-function-configuration update-function-configuration --function-name <value> [--role <value>] [--handler <value>] [--description <value>] [--timeout <value>] [--memory- size <값>] [--vpc-config <값>] [--environment <값>] [--runtime <값>] [--dead-letter-config <값>] [--kms-key- arn <값>] [--tracing-config <값>] [--revision-id <값>] [--cli-input-json <값>] [--generate-cli-skeleton <값>]
update-function-code update-function-code --function-name <값> [--zip-file <값>] [--s3-bucket <값>] [--s3-key <값>] [--s3-object- 버전 <값>] [--publish | --no-publish] [--dry-run | --no-dry-run] [--revision-id <값>] [-cli-input-json <값>] [-generate-cli-skeleton <값>]
delete-function delete-function --function-name <값> [--qualifier <값>] [--cli-input-json <값>] [--generate-cli-skeleton <값>]

이제 이러한 명령을 하나씩 자세히 살펴 보겠습니다.

생성 기능

이 API는 새로운 람다 함수를 생성합니다. 코드는 zip 형식으로 제공되어야합니다. 생성 할 함수가 이미 존재하는 경우 API가 실패합니다. 함수 이름은 대소 문자를 구분합니다.

포함 된 명령

create-function과 함께 사용할 수있는 명령 목록은 다음과 같습니다.

create-function 
--function-name <value>
--runtime <value>
--role <value>
--handler <value>
[--code <value>] 
[--description <value>] 
[--timeout <value>] 
[--memory-size <value>] 
[--environment <value>] 
[--kms-key-arn <value>] 
[--tags <value>] 
[--zip-file <value>] 
[--cli-input-json <value>]

포함 된 옵션

위의 기능으로 사용할 수있는 다양한 옵션은 다음과 같습니다.

--function-name (string)− 함수의 이름을받습니다. 이름은 64 비트 문자 일 수 있습니다.

--runtime(string)− 여기서 런타임 환경, 즉 언어 선택을 지정해야합니다. 런타임에 대한 자세한 내용은 다음과 같습니다.

사용 가능한 옵션 실행 시간
Python v3.6 파이썬 3.6
Python v2.7 파이썬 2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
자바 java8
C # 1 dotnetcore1.0
C # 2 dotnetcore2.0
가다 go1.x

--role(string)− 이것은 람다 정책의 이름, 즉 다른 서비스에 액세스하기 위해 람다 함수에 부여되는 역할입니다. 지정된 역할에 따라 권한이 있습니다.

--handler (string) − 람다 코드 실행이 시작되는 핸들러의 이름입니다.

  • nodejs의 경우 핸들러 이름은 우리가 내보내는 모듈 이름입니다.
  • java의 경우 package.classname :: handler 또는 package.classname입니다.
  • 파이썬의 경우 핸들러는 파일 이름입니다.

--code (structure) −AWS Lambda 코드

--description (string) − AWS Lambda 함수에 대한 설명

--timeout (integer)− timeout은 람다 함수가 실행을 종료해야하는 시간을 갖습니다. 기본값은 3 초입니다.

--memory-size (integer)− 이것은 aws lambda 함수에 주어진 메모리입니다. AWS는 주어진 메모리를 기반으로 CPU 및 메모리 할당량을 할당합니다.

--environment (structure) − aws lambda 함수에 필요한 환경 세부 정보가있는 객체입니다.

e.g : Variables = {Name1 = string, Name2 = string}

--kms-key-arn (string)− 이는 환경 변수를 암호화하는 데 사용되는 Amazon 리소스 이름 (ARN)입니다. 제공하지 않으면 암호화 할 기본 설정이 적용됩니다.

--zip-file (blob) − 코드 세부 사항이있는 zip 파일의 경로.

--cli-input-json (string): 제공된 JSON 문자열을 기반으로 서비스 작업을 수행합니다. JSON 문자열은 --generate-cli-skeleton에서 제공하는 형식을 따릅니다. 명령 줄에 다른 인수가 제공되면 CLI 값이 JSON 제공 값을 재정의합니다.

이제 런타임을 nodejs로 사용하여 간단한 AWS Lambda 함수를 생성하고 인쇄 할 console.logs를 추가하겠습니다.

동일한 이해를 위해 샘플 코드를 고려하십시오.

exports.handler = async (event) => {
   console.log("Using aws cli");
   return 'Hello from Lambda from aws cli!'
};

이제 파일을 압축하여 다음과 같이 저장하십시오. awscli.zip.

ARN 받기

역할을 위해 arn우리가 만든 기존 역할에서. ARN을 받으려면 여기에 표시된 단계를 따라야합니다. 첨부 된 각 스크린 샷을 관찰하십시오.

1 단계

IAM으로 이동하여 원하는 역할을 선택하십시오. Roles. 역할에 대한 ARN 세부 정보가 아래와 같이 표시됩니다. 사용하다Role ARNcreate-functionaws cli.

여기서 arn 역할이 있는지 확인합니다. arn : aws : iam :: 625297745038 : role / lambdaapipolicy

값이있는 명령 create-function 다음과 같습니다-

aws lambda create-function 
--function-name "awslambdausingcli" 
--runtime "nodejs8.10" 
--role "arn:aws:iam::625297745038:role/lambdaapipolicy" 
--handler "awscli.handler" 
--timeout 5 
--memory-size 256 
--zip-file "fileb://awscli.zip"

이제 aws cli에서 명령을 실행하면 아래와 같이 출력을 찾을 수 있습니다.

AWS 콘솔에서 Lambda 함수는 아래와 같이 표시됩니다.

기능의 세부 사항은 다음과 같습니다.

구성의 세부 사항은 다음과 같습니다-

다음과 같이 기능을 테스트하고 출력을 확인할 수 있습니다.

해당 로그 출력은 다음과 같습니다.

목록 기능

이 API는 AWS Lambda에서 지금까지 생성 된 함수 목록을 제공합니다.

포함 된 명령

다음은이 API와 관련된 명령입니다-

list-functions
[--master-region <value>]
[--function-version <value>]
[--max-items <value>]
[--cli-input-json <value>]

목록 기능 아래의 옵션

다음은이 목록 기능 API에서 사용할 수있는 다양한 옵션입니다.

--master-region(string)− 선택 사항. 기능을 표시해야하는 영역입니다.

--function-version(string)− 선택 사항. 이것은 함수 버전을 제공합니다.

--max-items(integer)− 선택 사항. 그러면 지정된 값에 따라 항목이 제공됩니다.

--cli-input-json(string)− 선택 사항. 제공된 json 파일을 기반으로 작업을 수행합니다.

값이있는 명령 list-functions 다음과 같습니다-

aws lambda list-functions --max-items 3

명령은 다음과 같이 세부 정보를 표시합니다-

get 함수

이 API는 함수에 대한 세부 정보와 create-function을 사용하여 업로드 된 zip 파일이있는 URL 링크를 제공합니다. zip 세부 정보가 포함 된 URL은 10 분 동안 만 유효합니다.

포함 된 명령

다음은이 API와 관련된 명령입니다-

get-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

포함 된 옵션

--function-name− AWS Lambda 함수의 이름. 함수의 Amazon 리소스 이름을 지정할 수도 있습니다.

--qualifier(string)− 선택 사항. 함수 버전을 사용하여 함수의 세부 정보를 얻을 수 있습니다.

get-function 값을 가진 명령은 다음과 같습니다.

aws lambda get-function --function-name awslambdausingcli

명령 표시 세부 사항은 다음과 같습니다-

우편 번호가 업로드 된 URL을 제공합니다. 위의 경우 URL은-

https://prod-04-2014-
tasks.s3.amazonaws.com/snapshots/625297745038/awslambdausingcli-97048f8d-4a08
-4ed9-99d9-acb00d2063d2?versionId=d04HKvPu9S2zz8pzjbW6Rmf5o5fxnc_r&X-Amz-Security
-Token=FQoDYXdzEKT%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDCpTmGvtwKToPBiWcyK3A96UcJEnwvYDhMbbxu
%2Bg2gffK2ocfnlEeiCHak8QqqE1RFpbKrdks9NzxP9gNbagL4M9RValxJ1a9PUY%2FOdAekscRHOiX00MVAxUlI8
2pKryhdOwLJWSj0uRzqvOxCcBwJenHrSNPeG6lMa2ZDo0qZFEUDONSaTg4nuSnJK1f6t3pMAKu4vF9wPvf92G%2BU
60rUxwleggigISmD9l1IlZse3%2BVF1JlNuN%2F5d85v0y2Q%2F%2BO515CybcZpn91sHPYG8JMJ00LsrkQ2Ww4VU
9Zz5c5QYH4JYPj0CyEgSz9b%2FMceMPpOoPUAMjctb%2FEwQqcShZeqAr9%2Fcd2ZI%2BXl2%2Bs4ri0ucgPvQQvs
eGIIiZbX3GqdwR2jb1nylrAEIfiuFMoSWfcFYoYtuL0MZnjGR9jy2GNkp6MB%2BlHHr7%2BnuFRUzU26rgDYmdE1w
Rb3%2B21Jm49WGDa9opRLvUxFaux57Or70haib2FuKzN6Gf3Vzzk5KPdWsYUpaLyf%2B1ovEytOZhB1JEXuCs%2FG
IlOXS88yxT%2BpOKmyxweiezpGgI%2FAkSAQTbSRsYQKIOFyIJNHzplwrJKhy28vy60numIBIo9Zqq2AU%3D
&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20180527T112426Z&X-Amz-
SignedHeaders=host&X-Amz-Expires=600&X-Amz-
Credential=ASIAICSQHLSBWFP37U4Q%2F20180527%2Fus-
east-1%2Fs3%2Faws4_request&X-Amz-Signature=
8b97e7d6d7da13313068e027894d2c875be5e50a0c5a62550f55307985bdc1aa

get-function-configuration

그러면 AWS Lambda 함수의 구성 세부 정보가 제공됩니다.

다음은이 API와 함께 사용되는 명령입니다-

get-function-configuration
--function-name <value>
[--qualifier <value>]

The following are the options used with

--function-name (string) −aws lambda 함수의 이름입니다. 함수의 Amazon 리소스 이름을 지정할 수도 있습니다.

--qualifier(string) − 선택 사항. 함수 버전을 사용하여 함수의 세부 사항을 가져올 수 있습니다.

get-function 값을 가진 명령은 다음과 같습니다.

aws lambda get-function-configuration --function-name awslambdausingcli

명령은 다음과 같이 세부 정보를 표시합니다-

계정 설정 가져 오기

이 API는 계정 설정을 제공합니다.

관련 명령

이 API와 함께 사용할 수있는 명령은 다음과 같습니다.

get-account-settings
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

관련 옵션

이 API와 함께 다음 옵션을 사용할 수 있습니다-

--cli-input-json(string) − 제공된 json 문자열을 기반으로 서비스를 수행합니다.

--generate-cli-skeleton(string) − API 요청을 보내지 않고 json 출력을 인쇄합니다.

get-account-settings에 다음 명령을 사용할 수 있습니다-

aws lambda get-account-settings

위에 주어진 명령을 실행하면 다음 출력을 볼 수 있습니다.

업데이트 기능 구성

이 API는 생성 된 AWS Lambda 함수의 구성 세부 정보를 업데이트하는 데 도움이됩니다. 메모리, 타임 아웃, 핸들러, 역할, 런타임, 설명 등을 변경할 수 있습니다.

관련 명령

다음은 업데이트 기능 구성 API에 관련된 명령입니다-

update-function-configuration
--function-name <value>
[--role <value>]
[--handler <value>]
[--description <value>]
[--timeout <value>]
[--memory-size <value>]
[--environment <value>]
[--runtime <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

관련 옵션

다음은 업데이트 기능 구성 API에 관련된 옵션입니다-

--function-name − aws lambda 함수의 이름

--role (string) −선택 과목. 역할의 ARN을 업데이트해야합니다.

--handler (string) −선택 과목. aws lambda 함수의 핸들러 세부 정보입니다.

--description(string) −선택 과목. 기능에 대한 설명입니다.

--timeout(integer) −선택 과목. aws lambda 함수가 종료되는 데 필요한 시간입니다.

--memory-size(integer) −선택 과목. 이것은 aws lambda 함수에 주어진 메모리입니다. AWS는 주어진 메모리를 기반으로 CPU 및 메모리 할당량을 할당합니다.

--environment (structure) −선택 과목. aws lambda 함수에 필요한 환경 세부 정보가있는 객체입니다.

e.g: Variables = {Name1 = string, Name2 = string}

--runtime(string) − 여기서 런타임 환경, 즉 언어 선택을 지정해야합니다.

런타임에 대한 자세한 내용은 아래 표에 나와 있습니다.

사용 가능한 옵션 실행 시간
Python v3.6 파이썬 3.6
Python v2.7 파이썬 2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
자바 java8
C # 1 dotnetcore1.0
C # 2 dotnetcore2.0
가다 go1.x

--cli-input-json (string) −선택 과목. 제공된 json 문자열에 지정된대로 API에서 작업을 수행합니다.

--generate-cli-skeleton (string) −선택 과목. 그러면 API를 실행하지 않고 모든 세부 정보의 JSON 스켈레톤이 출력됩니다. 출력은 입력으로 사용할 수 있습니다.--cli-input-json.

이제 이전에 생성 한 AWS Lambda 함수의 메모리와 시간 초과를 변경하겠습니다. 아래 단계를 따르고이 목적으로 첨부 된 해당 스크린 샷을 관찰하십시오.

1 단계

변경이 발생하기 전의 메모리 및 타임 아웃은 다음과 같습니다.

2 단계

이제 update-function-configuration, 메모리와 타임 아웃을 320MB로, 타임 아웃을 10 초로 변경하겠습니다. 이를 위해 다음 명령을 값과 함께 사용하십시오.

aws lambda update-function-configuration --function-name “awslambdusingcli” 
--timeout 10 --memory-size 320

3 단계

그러면 다음 출력을 디스플레이로 볼 수 있습니다.

4 단계

사용 후 AWS 콘솔의 표시 update-function-configuration 다음과 같습니다-

업데이트 기능 코드

이 API는 기존 AWS Lambda 함수의 코드를 업데이트합니다.

관련 명령

update-function-code
--function-name <value>
[--zip-file <value>]
[--s3-bucket <value>]
[--s3-key <value>]
[--s3-object-version <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

관련 옵션

다음은 업데이트 기능 코드 API와 관련된 옵션입니다-

--function-name(string) − aws lambda 함수의 이름

--zip-file (blob) −선택 과목. 업데이트 할 코드가있는 zip 파일의 경로입니다.

--s3-bucket(string) −선택 과목. 코드가 업로드 된 zip 파일이있는 S3 버킷 이름입니다.

--s3-key(string) −선택 과목. 업로드해야하는 AWS s3 객체 키 이름입니다.

--s3-object-version (string) −선택 과목. AWS s3 객체 버전.

--cli-input-json (string) −선택 과목. 제공된 json 문자열에 지정된대로 API에서 작업을 수행합니다.

--generate-cli-skeleton (string) −선택 과목. 그러면 API를 실행하지 않고 모든 세부 정보의 JSON 스켈레톤이 출력됩니다. 출력은 --cli-input-json에 대한 입력으로 사용할 수 있습니다.

업데이트 된 코드는 다음과 같습니다.

exports.handler = async (event, context) => {
   console.log("Using aws cli");
   console.log()
   return 'Hello from Lambda from aws cli!'
};

다음을 사용할 수 있습니다. command with values for this purpose

aws lambda update-function-code --function-name "awslambdausingcli" 
--zip-file "fileb://awscli.zip"

해당 출력은 다음과 같습니다.

AWS 콘솔의 디스플레이는 다음과 같습니다.

해당 로그 출력은 다음과 같습니다.

삭제 기능

그만큼 delete aws cli api는 주어진 함수를 삭제합니다.

포함 된 명령

동일한 명령 세부 정보가 여기에 제공됩니다.

delete-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

포함 된 옵션

이 API에 포함 된 옵션은 다음과 같습니다.

--function-name(string) − 람다 함수 이름 또는 aws lambda 함수의 arn을 사용합니다.

--qualifier (string) −이것은 선택 사항입니다. 여기에서 삭제해야하는 aws lambda의 버전을 지정할 수 있습니다.

-- cli-input-json(string) −제공된 JSON 문자열을 기반으로 서비스 작업을 수행합니다. JSON 문자열은 --generate-cli-skeleton에서 제공하는 형식을 따릅니다. 명령 줄에 다른 인수가 제공되면 CLI 값이 JSON 제공 값을 재정의합니다.

--generate-cli-skeleton(string) − API 요청을 보내지 않고 json 스켈레톤을 표준 출력으로 인쇄합니다.

이 목적을 위해 값과 함께 다음 명령을 사용할 수 있습니다-

aws lambda delete-function --function-name "lambdatestcli"

이제 함수가 AWS Lambda 함수 목록에 표시되지 않습니다.