0

CloudFormation을 사용하여 AWS에 람다 함수를 배포하려고합니다. 내 문제는 코드 섹션에 대해 s3 버킷이 아닌 로컬 파일을주고 싶다는 것이다. 이것은 내가 지금 가지고있는 것입니다.CloudFormation 람다 함수가 로컬 코드를 제공합니다.

getStores: 
    Type: AWS::Lambda::Function 
    Properties: 
     Handler: index.get 
     Role: !GetAtt SyncGalaxyLambdaRole.Arn 
     Code: 
     ZipFile: 
      Fn::Join: 
      - "\n" 
      - - exports.get = function(event, context) { 
      - " console.log('hello world!');" 
      - "};" 
     Runtime: nodejs6.10 

이제 코드 섹션 나는 웹팩을 통해 생성 된 로컬 파일의 내용을주고 싶다. 어떻게해야합니까?

답변

0

자바 스크립트 코드에 클라우드 정보가 삽입되지 않도록 할 수 있습니다. 앞으로는 유지하기가 어려울 것입니다. AWS SAM을 사용하여 코드를 s3 버킷으로 압축하고 람다 함수에 사용할 수도 있습니다. AWS에서 권장되는 방법은 무엇입니까? http://docs.aws.amazon.com/lambda/latest/dg/deploying-lambda-apps.html

AWSTemplateFormatVersion: '2010-09-09' 
Transform: AWS::Serverless-2016-10-31 
Description: Hello World 
Resources: 
    HelloWorldFunction: 
    Type: AWS::Serverless::Function 
    Properties: 
     Handler: index.handler 
     Runtime: nodejs4.3 
     CodeUri: ./ 

스택을 만들려면 다음 단계를 수행하십시오.

  1. AWS CLI를 설치 및 구성하십시오.
  2. aws s3 mb s3://[STACK_NAME]-app-artifact --region [REGION]
  3. 코드 생성을 위해 webpack 단계를 실행하십시오.
  4. aws cloudformation package --template-file samTemplate.yaml --s3-bucket [STACK_NAME]-app-artifact --output-template-file NewSamTemplate.yaml
  5. aws --region [REGION] cloudformation deploy --template-file NewSamTemplate.yaml --stack-name [STACK_NAME] --capabilities CAPABILITY_IAM.

코드가 업데이트되면 위의 단계를 다시 실행하여 스택을 만들 수 있습니다.

+0

감사합니다. 빠른 질문입니다. 배포 할 명령을 다시 실행하면 AWS가 어떤 점이 변경되었는지 어떻게 알 수 있습니까? –

+0

패키지 명령을 실행하면 AWS는 타임 스탬프와 마찬가지로 항상 매번 다른 이름으로 s3 버킷에 zip을 업로드합니다. 이 s3 URI는 NewSamTemplate.yaml의 변경 사항을 반영합니다. – Amal