我正在尝试通过无服务器yaml配置更新AWS Elasticsearch访问策略:
resources:
Resources:
ELInstanceName:
Type: "AWS::Elasticsearch::Domain"
Properties:
ElasticsearchVersion: "7.1"
DomainName: "domain-name"
ElasticsearchClusterConfig:
DedicatedMasterEnabled: false
InstanceCount: "3"
ZoneAwarenessEnabled: false
InstanceType: "m4.large.elasticsearch"
EBSOptions:
EBSEnabled: true
Iops: 0
VolumeSize: 10
VolumeType: "gp2"
AccessPolicies:
Version: "2012-10-17"
Statement:
-
Effect: "Allow"
Principal:
AWS:
- arn:aws:iam::XXXXXXXXX:user/user1
- arn:aws:iam::XXXXXXXXX:user/user2
- arn:aws:iam::XXXXXXXXX:role/Cognito_custom_Auth_Role
Action: "es:*"
Resource: "*"
在执行命令serverless deploy
时,执行挂起或出现以下错误终止
............
Serverless: Operation failed!
Serverless Error ---------------------------------------
An error occurred - domain-name elasticsearch instance already exists.
有时在执行命令时不会出错,但是在AWS控制台中检查时,ES访问策略没有变化。
我是否缺少用于更新资源的任何配置详细信息?使用无服务器可以更新ES资源的访问策略?
答案 0 :(得分:0)
“如果指定名称,则不能执行需要替换该资源的更新。可以执行不需要或需要一些中断的更新。如果必须替换资源,请指定新名称。”
如果对AccessPolicies的更新确实需要替换域,则可以解释您的问题。根据文档,它不是,但是也许对域进行了其他更改?
一种解决方法是不对域名进行硬编码。