내가 쓴 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] 삭제
몇 마디 만하겠습니다