Amazon cloudformation 无服务器部署资源不支持Fn::GetAtt中的属性类型Arn
我以前将我的表定义为MyData。我的策略资源如下所示:Amazon cloudformation 无服务器部署资源不支持Fn::GetAtt中的属性类型Arn,amazon-cloudformation,serverless,Amazon Cloudformation,Serverless,我以前将我的表定义为MyData。我的策略资源如下所示: functions: myfn: handler: lambda/handler.my role: DataIamPolicy environment: DynamoTableName: "my-data" 我认为这可能是政策中的资源,但改变这一点似乎没有帮助 因此,问题在于为您的功能定义一个特定的角色。默认情况下,serverless将角色和策略应用于所有函数 我申请了: DataIamPoli
functions:
myfn:
handler: lambda/handler.my
role: DataIamPolicy
environment:
DynamoTableName: "my-data"
我认为这可能是政策中的资源,但改变这一点似乎没有帮助 因此,问题在于为您的功能定义一个特定的角色。默认情况下,serverless将角色和策略应用于所有函数 我申请了:
DataIamPolicy:
Type: AWS::IAM::Policy
DependsOn: MyData
Properties:
PolicyName: "my-data-dynamodb-policy"
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: "Allow"
Action:
- "dynamodb:DescribeTable"
- "dynamodb:GetItem"
Resource:
Fn::Join:
- ""
- - "arn:aws:dynamodb:::"
- "Ref" : "MyData"
这不起作用,因为在后台它为策略获取arn,而不是我们尚未创建的角色
您需要设置一个具有自定义策略的角色,此方法才能工作。即:
role: DataIamPolicy
role: DataIamPolicy
role: DataIamRole