我尝试通过AWS SDK(Node)创建S3存储桶(thisIsTestBucket190)并遇到无效的存储桶名称异常。
{ InvalidBucketName: The specified bucket is not valid.
at Request.extractError (/Users/niro273/Desktop/data-lake/node_modules/aws-sdk/lib/services/s3.js:577:35)
at Request.callListeners (/Users/niro273/Desktop/data-lake/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at Request.emit (/Users/niro273/Desktop/data-lake/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/Users/niro273/Desktop/data-lake/node_modules/aws-sdk/lib/request.js:683:14)
at Request.transition (/Users/niro273/Desktop/data-lake/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/Users/niro273/Desktop/data-lake/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /Users/niro273/Desktop/data-lake/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/Users/niro273/Desktop/data-lake/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/Users/niro273/Desktop/data-lake/node_modules/aws-sdk/lib/request.js:685:12)
at Request.callListeners (/Users/niro273/Desktop/data-lake/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
message: 'The specified bucket is not valid.',
code: 'InvalidBucketName',
region: null,
time: 2018-03-29T04:51:02.692Z,
requestId: '5D487CF96846EFE2',
extendedRequestId: '1TzPeOv4c7zq+H+GV5kFMFO3Y6awoS79VCuf4C7lUmy/IucNEfbINEfEIiNp/Esz7t38ckYZbrU=',
cfId: undefined,
statusCode: 400,
retryable: false,
retryDelay: 34.88207359966853 }
如果我能知道根本原因是什么,那就太好了。
AWS 在命名 aws 存储桶时提供命名标准。
存储桶名称的长度可以在 3 到 63 个字符之间,并且只能包含小写字符、数字、句点和破折号。
存储桶名称中的每个标签必须以小写字母或数字开头。
存储桶名称不能包含下划线、以破折号结尾、不能有连续的句点或在句点旁边使用破折号。
存储桶名称不能格式化为IP地址(198.51.100.24)。
提供的名称包含大写字母,通过切换为小写字母可以解决问题。
这都是关于名称约定的!
存储桶名称的长度可以在 3 到 63 个字符之间,并且只能包含小写字符、数字、句点和破折号。
我在尝试使用
aws-cdk
创建 lambda 代码时遇到此错误
原来是我设置的区域不对。因此,用于上传 lambda 源的存储桶是错误的。
解决方案就像更改区域值一样简单。