amazon-web-services - 无服务器 DeployCustomS31 接入点 ARN 区域为空
问题描述
在某些时候将堆栈部署到 AWS 时出现错误,部署失败并回滚。在堆栈的控制台事件窗格中,字段中的第一个错误状态FancyStuffCustomS31
是Logical ID
和Failed to create resource. Access point ARN region is empty
状态CREATE_FAILED
。
我没有像这样定义任何 S3 Bucket,所以我假设它是由无服务器框架创建的。所以我窥视了.serverless
目录并得到以下代码段:
"FancyStuffCustomS31": {
"Type": "Custom::S3",
"Version": 1,
"DependsOn": [
"FancyStuffLambdaFunction",
"CustomDashresourceDashexistingDashs3LambdaFunction"
],
"Properties": {
"ServiceToken": {
"Fn::GetAtt": [
"CustomDashresourceDashexistingDashs3LambdaFunction",
"Arn"
]
},
"FunctionName": "funstufftest-dev-FancyStuff",
"BucketName": {
"Fn::GetAtt": [
"binRepo",
"Arn"
]
},
"BucketConfigs": [
{
"Event": "s3:ObjectCreated:*",
"Rules": []
}
]
}
},
(难怪我的 Lambda 函数被调用FancyStuff
)
我猜在某个时候它会尝试创建一个访问该 S3 存储桶的访问点来上传代码,而不是指定 arn 中的区域,但并不确定。
尝试从头开始删除和重新创建堆栈、更改名称等。目前我使用的唯一插件是serverless-sam
. 这些是我的版本:
$ sls version
Framework Core: 1.77.0
Plugin: 3.6.18
SDK: 2.3.1
Components: 2.33.0
$ npm version
{
npm: '6.14.7',
ares: '1.15.0',
brotli: '1.0.7',
cldr: '36.0',
http_parser: '2.9.3',
icu: '65.1',
llhttp: '2.0.4',
modules: '72',
napi: '5',
nghttp2: '1.40.0',
node: '12.16.2',
openssl: '1.1.1e',
tz: '2019c',
unicode: '12.1',
uv: '1.34.2',
v8: '7.8.279.23-node.34',
zlib: '1.2.11'
}
解决方案
解决方案比我想象的要简单(大惊喜):
1/ 仅指定存储桶名称,名称上根本没有 arn 装饰,没有接入点等。
2/ 在 serverless.yml 文件顶部的 provider 部分中添加部署 lambda 的区域。
推荐阅读
- python - 我正在尝试将 oracle 12c 连接到 django 2。为此我解锁了 HR 模式但是当我运行 python manage.py migrate 它给了我错误
- css - 侧边栏占据了页面高度的其余部分,当里面有很多元素时会滚动?
- maven - Job-DSL 创建的管道无法运行 maven
- c# - 向 WPF 应用程序添加资源会导致生成错误
- keras - Keras 中的 GRU/LSTM,输入序列长度可变
- html - 如何使用 Bootstrap 4 制作 div 的全高或内容高度
- javascript - 屏幕阅读器和 JavaScript 焦点事件的可访问性?
- python - 为什么我无法安装 PyInstaller?这个错误是什么意思?
- javascript - 如何根据先前表单字段的选定选项值隐藏表单字段
- sql - 根据关系获取最大数量