May*_*ank 6 aws-lambda serverless
我正在研究SAM模板,用于在AWS Serverless存储库中发布我的应用程序。但是,当我尝试为lambda添加策略时,会显示错误消息:Invalid Serverless Application Specification文档。发现的错误数量:1.错误:ID为[SyncPostDataFromSfLambda]的资源无效。“策略”属性中仅支持策略模板。
以下是我的SAM模板的示例:
{
"AWSTemplateFormatVersion": "2010-09-09",
"Transform": "AWS::Serverless-2016-10-31",
"Description": "Deployment",
"Resources": {
"SyncPostDataToSfLambda": {
"Type": "AWS::Serverless::Function",
"Properties": {
"Handler": "index.handler",
"FunctionName": "myLambdaFunction",
"CodeUri": "s3 URL",
"Runtime": "nodejs6.10",
"MemorySize": 512,
"Policies": [
"AmazonDynamoDBFullAccess"
],
"Events": {
"PostResource": {
"Type": "Api",
"Properties": {
"RestApiId": {
"Ref": "API"
},
"Path": "/apipath",
"Method": "post"
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
截至今天(2018-10-09),SAM模板已经支持内联策略文档。
这是一个例子:
Resources:
SomeFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs8.10
Policies:
- Statement:
- Sid: SSMDescribeParametersPolicy
Effect: Allow
Action:
- ssm:DescribeParameters
Resource: '*'
- Sid: SSMGetParameterPolicy
Effect: Allow
Action:
- ssm:GetParameters
- ssm:GetParameter
Resource: '*'
Run Code Online (Sandbox Code Playgroud)
参考文献:
这是来自官方存储库示例的策略模板的完整列表。
Transform: AWS::Serverless-2016-10-31
Resources:
MyFunction:
Type: 'AWS::Serverless::Function'
Properties:
CodeUri: src/
Handler: index.handler
Runtime: nodejs4.3
Policies:
- SQSPollerPolicy:
QueueName: name
- LambdaInvokePolicy:
FunctionName: name
- CloudWatchPutMetricPolicy: {}
- EC2DescribePolicy: {}
- DynamoDBCrudPolicy:
TableName: name
- DynamoDBReadPolicy:
TableName: name
- SESSendBouncePolicy:
IdentityName: name
- ElasticsearchHttpPostPolicy:
DomainName: name
- S3ReadPolicy:
BucketName: name
- S3CrudPolicy:
BucketName: name
- AMIDescribePolicy: {}
- CloudFormationDescribeStacksPolicy: {}
- RekognitionDetectOnlyPolicy: {}
- RekognitionNoDataAccessPolicy:
CollectionId: id
- RekognitionReadPolicy:
CollectionId: id
- RekognitionWriteOnlyAccessPolicy:
CollectionId: id
- RekognitionLabelsPolicy: {}
- SQSSendMessagePolicy:
QueueName: name
- SNSPublishMessagePolicy:
TopicName: name
- VPCAccessPolicy: {}
- DynamoDBStreamReadPolicy:
TableName: name
StreamName: name
- KinesisStreamReadPolicy:
StreamName: name
- SESCrudPolicy:
IdentityName: name
- SNSCrudPolicy:
TopicName: name
- KinesisCrudPolicy:
StreamName: name
- KMSDecryptPolicy:
KeyId: keyId
- SESBulkTemplatedCrudPolicy:
IdentityName: name
- SESEmailTemplateCrudPolicy: {}
- FilterLogEventsPolicy:
LogGroupName: name
- StepFunctionsExecutionPolicy:
StateMachineName: name
Run Code Online (Sandbox Code Playgroud)
小智 3
看来,目前只能使用SAM 策略模板。
AWS 在此处维护 SAM 策略模板的权威信息/概述: https: //docs.aws.amazon.com/serverlessrepo/latest/devguide/using-aws-sam.html
本文档还指出,如果您需要更多 AWS 资源和/或策略模板,您应该联系AWS Support。
可以在这里找到如何使用它们的简短概述和示例: https: //github.com/awslabs/serverless-application-model/blob/master/examples/2016-10-31/policy_templates/all_policy_templates.yaml
以下是发布此答案时当前支持的 SAM 策略模板的概述:
几乎所有这些策略模板都必须进行配置。请阅读 AWS 文档(上面的链接)了解如何配置这些模板。
| 归档时间: |
|
| 查看次数: |
5002 次 |
| 最近记录: |