aws iam get-user
Then find the user in IAM to make sure it has
`AmazonS3FullAccess`
aws s3 mb s3://<bucket-name> --region us-esat-1
Resource files:
Lambda.yml
AWSTemplateFormatVersion: "2010-09-09" Transform: AWS::Serverless-2016-10-31 Resources: TestFunction: Type: AWS::Serverless::Function Properties: Handler: index.handler Runtime: nodejs12.x Environment: Variables: S3_BUCKET: <YOUR_BUCKET_NAME>
index.js
exports.handler = (event, context, callback) => { // TODO implement const response = { statusCode: 200, body: JSON.stringify(‘Hello Cloud Gurus, This Lambda Function was deployed using SAM!‘) }; callback(null, response); };
Make sure put those two files in the same folder and run cmd:
sam package --template-file ./Lambda.yml --output-template-file sam-template.yml --s3-bucket <YOUR_BUCKET_NAME>
Replacae <Your_BUCKET_NAME>.
That cmd will package our code and output `sam-template.yml` file in our folder.
Now it‘s time to deploy:
sam deploy --template-file sam-template.yml --stack-name <STACK_NAME> --capabilities CAPABILITY_IAM
Make sure you have permission to deploy the CloudFormation. If you have AdminAccess then it is fine. Otherwise, you need to give `EC2, CloudFormation, S3, Lambda, IAM full access`.
Last, you can go to Lambda, find newly create lambda, run the test, to make sure, SAM has deploy a Lmabda by using CloudFormation.
If you want to deploy a serverless function, you can use SAM CLI.
[AWS] Lab: CloudFormation and SAM to deploy a Serverless fuction
原文:https://www.cnblogs.com/Answer1215/p/14638539.html