我是Serverless的新手,但请看一下此配置文件
provider:
name: aws
runtime: nodejs10.x
stage: dev
region: us-east-1
# you can add statements to the Lambda function's IAM Role here
# iamRoleStatements:
# - Effect: "Allow"
# Action:
# - "s3:ListBucket"
# Resource: { "Fn::Join" : ["", ["arn:aws:s3:::", { "Ref" : "ServerlessDeploymentBucket" } ] ] }
# - Effect: "Allow"
# Action:
# - "s3:PutObject"
# Resource:
# Fn::Join:
# - ""
# - - "arn:aws:s3:::"
# - "Ref" : "ServerlessDeploymentBucket"
# - "/*"
此资源是否指向fnproject?
我看了aws-resource-type,但找不到参考信息。
答案 0 :(得分:3)
Fn::Join
是一个内在函数,它将一组值附加到单个值中,并由指定的定界符分隔。如果分隔符为空字符串,则将没有分隔符的值集串联在一起。
您还可以在 join 和pseudo parameters中使用不同的内在函数。 有关更多信息,请检查official AWS documentation
答案 1 :(得分:1)
Fn::Join
是CloudFormation中用于连接字符串的函数。 Ref
是引用CloudFormation中创建的元素的另一个函数。
在您的示例中,Fn::Join
用于连接字符串以创建S3存储桶的 ARN ,其格式为 arn:aws:s3 :::: bucketname ,并且需要向Lambda中的存储桶授予权限。