Dotnet7, AWS Console, MacOS
AWS 웹콘솔 - 역할 - 역햘 생성
AWS 서비스 선택
일반 사용 사례 - Lambda 선택
권한은 AWSLambdaRole 선택
AWS 웹콘솔 - 사용자 - 사용자 생성
AWS Management Console에 대한 사용자 액세스 권한 제공 선택
IAM 사용자를 생성하고 싶음 선택
자동 생성된 암호 선택
직접 정책 연결 체크하고 AWSLambda_FullAccess
콘솔로그인 URL, 사용자 이름, 콘솔 암호는 안전한 곳에 저장한다.
AWS 웹콘솔 - 사용자 리스트에서 생성한 사용자 선택
액세스 키 만들기 클릭
Command Line Interface(CLI) 선택
태그값은 원하는 값 입력 (ex. cli_lambda_access)
생성된 일반키와 비밀키를 안전한 곳에 저장한다.
Install-Module AWSLambdaPSCore, AWSPowerShell -Scope CurrentUser -Verbose -Force -Confirm:$false
아래 코드에서 <>로 써진부분을 본인이 생성한 키로 변경
Import-Module AWSLambdaPSCore, AWSPowerShell
$AccessKey = '<일반키>'
$SecretKey = '<비밀키>'
$Region = '<리전>' # ex. 'us-east-1'
Initialize-AWSDefaultConfiguration -AccessKey $accessKey -SecretKey $secretKey -Region $Region
생성된 자격증명 파일은 ~/.aws/credentials에서 확인 할 수 있다.
작업디렉토리로 이동한 뒤 기본 템플릿으로 파워쉘 코드 생성
New-AWSPowerShellLambda -ScriptName MyLambda -Template Basic
ScriptName으로 지정한 이름의 MyLambda.ps1 파일이 생성된다.
여기서는 테스트 하기위해 HTTP 요청 코드를 작성한다.
#Requires -Modules @{ModuleName='AWS.Tools.Common';ModuleVersion='4.1.29.0'}
$Response = Invoke-WebRequest 'https://catfact.ninja/fact' | ConvertFrom-Json
Write-Host $Response.fact
Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5)
Name은 ScriptName으로 지정한 이름, ScriptPath는 생성된 ps1파일 경로, IAMRoleArn은 AWS 웹콘솔에 접속한 뒤 1단계에서 생성한 역할을 눌러보면 Arn값을 확인 할 수 있다.
$Parameters = @{
Name = 'MyLambda'
ScriptPath = './MyLambda/MyLambda.ps1'
IAMRoleArn = 'arn:aws:iam::012345678:role/LambdaRole'
}
Publish-AWSPowerShellLambda @Parameters
AWS 웹콘솔 - Lambda 목록을 보면 업로드한 함수가 생성 된 것을 볼 수 있다.
테스트 버튼을 누르고 Cloud watch에 들어가서 내가 요청한 고양이에 대한 정보를 잘 받은 것을 확인했다.
개발자로서 배울 점이 많은 글이었습니다. 감사합니다.