서버리스를 사용하여 S3 버킷을 생성 할 때 '버킷 이름에 대문자가 포함되지 않아야 함'오류가 발생 함

buterfly85

내가 쓴 serverless.yml나는 3 개 만들 경우 S3버킷 자원을. 이것은 내가 완료해야하는 집으로 가져가는 프로젝트이며 처리해야하는 정적 템플릿 용 버킷 2 개와 결과 용 버킷 1 개가 필요합니다. SQS를 정의 중이며 성공적으로 큐를 생성했으며 내 람다에서 메시지를 보내고 다른 람다에서 메시지를받을 수있었습니다.

그러나 S3 버킷 리소스를 정의하면 An error occurred: S3LanguageTemplatesBucket - Bucket name should not contain uppercase characters.

버킷 이름에 하드 코딩 된 값을 사용하려고했지만 도움이되지 않았습니다.

serverless.yml파일 의 내용은 다음과 같습니다.

service: process-scores

org: osano

frameworkVersion: '2'

provider:
  name: aws
  runtime: nodejs12.x
  profile: serverless-admin
  region: us-east-1
  environment:
    SQS_URL: MyQueue
    S3_HTML_TEMPLATES: ${self:service}-html-templates-sf68N5umh8gC8yM4
    S3_LANGUAGE_TEMPLATES: ${self:service}-language-templates-gY9b7REadVPtKChV
    S3_STATIC_WEBSITE: '${self:service}-static-website-pD4c7M2297pjAmST'

functions:
  send:
    handler: scores/producer.send
    events:
      - http:
          path: scores
          method: post
          integration: lambda
          cors: true
    iamRoleStatements:
      - Effect: Allow
        Action:
          - "sqs:SendMessage"
          - "sqs:GetQueueUrl"
        Resource:
          Fn::GetAtt: [ MyQueue, Arn ]

  receive:
    handler: scores/consumer.receive
    events:
      - sqs:
          arn:
            Fn::GetAtt:
              - MyQueue
              - Arn
    iamRoleStatements:
      - Effect: Allow
        Action:
          - "s3:GetObject"
        Resource:
          - 'arn:aws:s3:::${self:provider.environment.S3_HTML_TEMPLATES}/*'
          - 'arn:aws:s3:::${self:provider.environment.S3_LANGUAGE_TEMPLATES}/*'
      - Effect: Allow
        Action:
          - "s3:PutObject"
        Resource:
          - 'arn:aws:s3:::${self:provider.environment.S3_STATIC_WEBSITE}/*'

resources:
  Resources:
    MyQueue:
      Type: "AWS::SQS::Queue"
      Properties:
        QueueName: "MyQueue"
    S3HTMLTemplatesBucket:
      Type: "AWS::S3::Bucket"
      Properties:
        BucketName: '${self:provider.environment.S3_HTML_TEMPLATES}'
    S3LanguageTemplatesBucket:
      Type: "AWS::S3::Bucket"
      Properties:
        BucketName: '${self:provider.environment.S3_LANGUAGE_TEMPLATES}'
    S3StaticWebsiteBucket:
      Type: "AWS::S3::Bucket"
      Properties:
        BucketName: '${self:provider.environment.S3_STATIC_WEBSITE}'

도움이 될지 모르겠지만 생성 된 cloudformation 템플릿에 대한 링크도 아래에 제공했습니다.

템플릿 만들기

업데이트 템플릿

마르신

버킷 이름 에는 대문자를 사용할 수 없습니다 .

버킷 이름은 소문자 , 숫자, 점 (.), 하이픈 (-) 으로 구성 될 수 있습니다 .

따라서 대신 :

    S3_HTML_TEMPLATES: ${self:service}-html-templates-sf68N5umh8gC8yM4
    S3_LANGUAGE_TEMPLATES: ${self:service}-language-templates-gY9b7REadVPtKChV
    S3_STATIC_WEBSITE: '${self:service}-static-website-pD4c7M2297pjAmST'

시도해 볼 수 있습니다 (소문자 만) :

    S3_HTML_TEMPLATES: ${self:service}-html-templates-sf68n5umh8gc8ym4
    S3_LANGUAGE_TEMPLATES: ${self:service}-language-templates-gy9b7readvptkchv
    S3_STATIC_WEBSITE: '${self:service}-static-website-pd4c7m2297pjamst'

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관