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 ARN 와 create-function 에 aws 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 함수 목록에 표시되지 않습니다.