配置文件中“ Fn :: Join”指的是什么?

时间:2019-11-11 10:20:44

标签: amazon-web-services amazon-cloudformation serverless-framework

我是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,但找不到参考信息。

2 个答案:

答案 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中的存储桶授予权限。