在AWS SAM (Serverless Application Model) YAML 文件中,您可以使用 AWS::Serverless::Function
资源类型来定义 Lambda 函数,并使用 Policies
属性来附加 IAM 策略。如果您希望在同一个函数上附加多个策略,可以在 Policies
属性中使用多个 AWS::IAM::Policy
资源。同样地,如果您希望在同一个 DynamoDB 表格上附加多个策略,可以在 Policies
属性中使用多个 AWS::IAM::Policy
资源。
以下是一个示例,演示了如何在 AWS SAM YAML 文件中同时附加多个策略或多个 DynamoDB 表格的策略:
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: my-function/
Handler: index.handler
Runtime: nodejs14.x
Policies:
- Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- dynamodb:Scan
Resource: "arn:aws:dynamodb:us-east-1:1234567890:table/Table1"
- Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- dynamodb:PutItem
Resource: "arn:aws:dynamodb:us-east-1:1234567890:table/Table2"
在上面的示例中,我们定义了一个名为 MyFunction
的 Lambda 函数,并在 Policies
属性中附加了两个 IAM 策略。第一个策略允许该函数扫描名为 Table1
的 DynamoDB 表格,第二个策略允许该函数向名为 Table2
的 DynamoDB 表格插入项。
请根据您的需求修改示例中的 ARN 和策略动作。注意,这只是一个示例,您可以根据自己的实际需求进行适当的修改。