SAM을 통한 네임스페이스 스택

4868 단어 awsawssam
AWS SAM은 새로운 서버리스 스택을 오케스트레이션할 때 유용한 도구입니다. 그것은 해결해야 할 고유한 단점과 헛소리가 있습니다. 그 중 하나는 개발 단계에서 여러 개발자가 동일한 환경에 배포하는 경우 유용할 수 있는 네임스페이스 스택에 대한 지원 부족이었습니다.

하나만 있어도 돼!!

그러나 --config-file samcli 옵션 덕분에 이것이 가능해졌습니다. 여기 우리가 이것을 확립할 수 있는 방법에 대한 나의 견해가 있습니다.

Sam 구성 파일 만들기



아래 강조 표시된 몇 가지 사소한 차이점을 제외하고는 기존 samconfig.toml 파일과 동일한 내용을 포함하는 새 구성 파일을 생성해야 합니다.

samconfig.toml

stack_name = "blog-sam-custom-namespace-dev"
s3_bucket = "aws-sam-cli-managed-default-samclisourcebucket-s7lq825ncn5b"
s3_prefix = "blog-sam-custom-namespace-dev"
region = "us-east-1"
capabilities = "CAPABILITY_NAMED_IAM"
parameter_overrides = """
  Environment=dev
  NodeEnv=dev
"""


samconfig-jdoe.toml

stack_name = "blog-sam-custom-namespace-jdoe"
s3_bucket = "aws-sam-cli-managed-default-samclisourcebucket-s7lq825ncn5b"
s3_prefix = "blog-sam-custom-namespace-jdoe"
region = "us-east-1"
capabilities = "CAPABILITY_NAMED_IAM"
parameter_overrides = """
  Environment=jdoe
  NodeEnv=jdoe
"""


템플릿 업데이트



다음과 같이 template.yaml(또는 yml)을 업데이트합니다.

S3UploaderFunction:
  Type: AWS::Serverless::Function
  Properties:
    CodeUri: build/s3-uploader
    Handler: index.handler
    Role: !Sub ${BlogSamCustomNamespaceRole.Arn}
    Environment:
      Variables:
        ENV: !Ref Environment
        NODE_ENV: !Ref NodeEnv


Note: If you have multiple functions, you can also move the environment variable declaration to Globals.



코드에서 환경 처리 또는 사용



이제 전달된 환경을 사용하려면 다음과 같은 방법으로 사용할 수 있습니다(제한되지 않음).

const S#_BUCKET = `blog-sam-custom-namespace-bucket-${process.env.ENV}`;


배포



이미 AWS 프로필 세트와 프로젝트가 구축되어 있다면 다음 명령을 실행하여 배포할 수 있습니다.

sam deploy --config-file samconfig-jdoe.toml


모든 것이 순조롭게 진행되면 제공된 네임스페이스로 끝나는 스택이 배포됩니다.

우리는 다 똑같아

전체 코드를 찾을 수 있습니다here.

좋은 웹페이지 즐겨찾기