응용 프로그램을 Serverless Application Repository에 공개

7839 단어 AWSsam-ciisam

개시하다


Serverless Application Repository에는 다음 기고문에서 SAM이 제작한 리소스가 공개돼 단계를 요약했다.
  • CodeBuild를 통해 CodeCommiit 매개 변수를 확인하고 AWS Chaatbot을 사용하여 Slack에 알림
  • 기본적으로 공식적인 절차게시 응용 프로그램에 따른다.

    Serverless Application Repository 공개 프로그램


    SAM 템플릿에 메타데이터 추가


    Serverless Application Repository에 공개할 때 애플리케이션의 정보를 SAM 템플릿에 추가합니다.
    template.yaml
    Metadata:
      AWS::ServerlessRepo::Application:
        Name: tests-pullrequest-in-codecommit-using-codebuild-and-notify-slack.
        Description: This repository contains sample code that tests pull requests created in AWS CodeCommit with CodeBuild and notifies to Slack using AWS Chatbot.
        Author: joe-king-sh
        SpdxLicenseId: AML
        LicenseUrl: LICENSE
        ReadmeUrl: README.md
        Labels: ['codecommit','codebuild','awschatbot','slack','lambda','ci','eventbridge']
        HomePageUrl: https://github.com/joe-king-sh/aws-codecommit-pull-request-aws-codebuild-aws-chatbot
        SemanticVersion: 0.0.1
        SourceCodeUrl: https://github.com/joe-king-sh/aws-codecommit-pull-request-aws-codebuild-aws-chatbot
    

    공개 응용 프로그램 패키지 만들기


    다음 명령은 응용 프로그램을 패키지화하여 S3에 업로드합니다.
    % sam package \
    --template-file template.yml \ 
    --output-template-file packaged.yml \ 
    --s3-bucket serverless-application-repository-deploy-bucket
    
    업로드 전 S3 통은 Se r ve r less Application Repository에서 액세스해야 합니다.
    다음과 같은 구간 정책을 미리 설정합니다.
    S3_BucketPolicy
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service":  "serverlessrepo.amazonaws.com"
                },
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::serverless-application-repository-deploy-bucket/*"
            }
        ]
    }
    

    공개한다

    sam publish 명령으로 공개
    % sam publish \
    --template packaged.yml \
    --region ap-northeast-1
    Publish Succeeded
    Created new application with the following metadata:
    {
      "Name": "tests-pullrequest-in-codecommit-using-codebuild-and-notify-slack",
      "Description": "This repository contains sample code that tests pull requests created in AWS CodeCommit with CodeBuild and notifies to Slack using AWS Chatbot.",
      "Author": "joe-king-sh",
      "SpdxLicenseId": "AML",
      "LicenseUrl": "s3://serverless-application-repository-deploy-bucket/15d219711004e23a9507e8ab1ce160b7",
      "ReadmeUrl": "s3://serverless-application-repository-deploy-bucket/fa5d01dad58d52938c900bbc34ce3cc1",
      "Labels": [
        "codecommit",
        "codebuild",
        "awschatbot",
        "slack",
        "lambda",
        "ci",
        "eventbridge"
      ],
      "HomePageUrl": "https://github.com/joe-king-sh/aws-codecommit-pull-request-aws-codebuild-aws-chatbot",
      "SemanticVersion": "0.0.1",
      "SourceCodeUrl": "https://github.com/joe-king-sh/aws-codecommit-pull-request-aws-codebuild-aws-chatbot"
    }
    Click the link below to view your application in AWS console:
    https://console.aws.amazon.com/serverlessrepo/home?region=ap-northeast-1#/published-applications/arn:aws:serverlessrepo:ap-northeast-1:757523705531:applications~tests-pullrequest-in-codecommit-using-codebuild-and-notify-slack
    
    기본적으로 공공 공유는 공개되지 않습니다.
    필요에 따라 관리 콘솔에 대한 공공 접근을 사용하십시오.

    끝말


    SAM에 앱을 구축하는 것은 물론 공개되기 전에 지령 1개를 쓰는 것도 수월하다.
    SAM은 Cfn의 확장으로 최근에 Cfn 자원sam deploy, sam validate 등sam 명령도 사용할 수 있다는 것을 알게 되었다.
    지금까지SAM에 템플릿을 써도 aws cloudformation 지령으로 디자인했기 때문에 SAM의 장점을 더욱 활용하고 싶습니다.

    좋은 웹페이지 즐겨찾기