是的,AWS SAM(Serverless Application Model)具有类似CloudFormation的JSON或YAML规范可用。以下是一个使用YAML规范的示例:
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: my-function/
Handler: index.handler
Runtime: nodejs14.x
Events:
HelloWorldApi:
Type: Api
Properties:
Path: /hello
Method: get
以上示例定义了一个名为"MyFunction"的AWS Lambda函数,使用了AWS SAM的特殊资源类型AWS::Serverless::Function。函数的代码位于"my-function/"目录下,入口处理程序为"index.handler",运行时为"nodejs14.x"。此外,函数还定义了一个事件,当发生GET请求到路径"/hello"时触发。
注意,这只是一个简单的示例,AWS SAM还支持更多功能和资源类型,如API网关、DynamoDB表等。您可以根据您的需求进行调整和扩展。
您可以将上述代码保存为YAML文件(例如"template.yaml"),然后使用AWS SAM命令行工具部署应用程序:
sam deploy --template-file template.yaml --stack-name my-stack --capabilities CAPABILITY_IAM
此命令将使用指定的模板文件部署应用程序,并创建一个名为"my-stack"的CloudFormation堆栈。