Code Monkey home page Code Monkey logo

aws-sam-developer-guide's Introduction

aws-sam-developer-guide's People

Contributors

aahung avatar aaythapa avatar alanwill avatar alivest avatar byrro avatar evzzk avatar goingforbrooke avatar hoffa avatar joshbean avatar kinclay avatar kyler-hyuna avatar mark-hirayama avatar mcdwil avatar me2resh avatar mgorski-mg avatar mikecsmith avatar mkozjak avatar mousedownmike avatar praneetap avatar rainabba avatar rajasgujarathi avatar ryancabanas-gt avatar ryanycoleman avatar s-w-williams avatar sampathdilhan avatar sanathkr avatar shariqmus avatar simoncmoore avatar singledigit avatar ssenchenko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aws-sam-developer-guide's Issues

Clarify samconfig.toml header keys

Describe your idea/feature/enhancement

The AWS SAM CLI configuration file documentation does not provide enough information to properly format a samconfig.toml file when a subcommand contains hyphens (-).

The relevant documentation is:

For subcommands, the format of the table header is [environment.command_subcommand.parameters]. For example, for the sam local invoke command, the configuration table header is [default.local_invoke.parameters].

Proposal

Add a section to read:

Hyphenated subcommands must have hyphens converted to underscores. For example, for the sam local start-api command, the configuration table header is [default.local_start_api.parameters].

Additional Details

It's possible that this is something most people know about the TOML format but it is difficult to figure out and remember the conversions between JSON, YAML and TOML.

Originally from: aws/aws-sam-cli#2378

Add Models example

I'm looking for some sample code on how to use a Model within a SAM template, according to the template there is supposed to be an example of how to use models.

Models

The schemas to be used by your API methods. These schemas can be described using JSON or YAML. See the Examples section at the bottom of this page for example models. 

But there is no example to be found.

Update the samcli install guide to use pip3 for installation as well

I struggled to install homebrew on my EC2 Ubuntu Server 18.04 LTS (HVM) as mentioned in the official documentation as the following particular command
brew install aws-sam-cli , kept on giving different kinds of errors, and then I found after some googling that even pip can be used to install sam-cli and I finally used pip to install the sam-cli on my box. I think it would be better to update the documentation https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install-linux.html
to include the installation steps using pip3 as well.

Error: Running AWS SAM projects locally requires Docker. Have you got it installed and running?

Running locally throws error saying Docker is missing. I have docker installed.

OS: Mac - Monterey 12.4 21F79
Docker : Docker version 20.10.14, build a224086
Python: Python 3.8.9

Error:

 % sam local invoke "HelloWorldFunction" -e events/event.json
Error: Running AWS SAM projects locally requires Docker. Have you got it installed and running?
sudo sam local start-api --region eu-east-1               
Error: Running AWS SAM projects locally requires Docker. Have you got it installed and running?

HttpApi tags conditions

The [docs] for HttpApi currently say:

Because Tags requires AWS SAM to modify your OpenAPI definition, they will only be added if the DefinitionBody property is specified—no tags will be added if the DefinitionUri property is provided.

This isn't entirely accurate, or at least not obviously so. Tags will also be added if neither DefinitionBody nor DefinitionUri are provided, and the entire definition is inferred from other SAM resources.

Clarification about removal of stage called `Stage` in AWS::Serverless::Api

I noticed my SAM templates were creating a stage called Stage automatically when using the SAM CLI for deploying my API.

I went through the open issues in the serverless-application-model repository, and found #1202.

Quoting keetonian's reply:

We definitely can make this more clear in the documentation. I'll add a label to this issue to update our documentation.

I decided to update the documentation to make it perfectly clear that there is indeed a stage called Stage created automatically unless the OpenApi property is set to any valid value.

I appreciate the current Note in the AWS docs:

Note: Setting this property to any valid value will also remove the stage Stage that SAM creates

However, when I first read through the SAM documentation it wasn't clear to me what the note was referring to - or that it would create an additional stage besides the one specified in the StageName property).

I'm proposing adding a more detailed note, which hopefully removes ambiguity regarding this auto-generated stage Stage.

I will create a Pull Request with my proposal and link it as a comment in this issue. Thanks a lot!

Syntax for CorsConfiguration string attributes

As outlined in CorsConfiguration documentation, the sample configuration looks like this.

Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      Cors:
        AllowMethods: "'POST, GET'"
        AllowHeaders: "'X-Forwarded-For'"
        AllowOrigin: "'www.example.com'"
        MaxAge: "'600'"
        AllowCredentials: true

With this regard, I have a few questions

  1. Should the value for AllowOrigin start with the protocol, i.e., not www.example.com but https://www.example.com?
  2. How can I specify that I support multiple origins without resorting to the * fallback?
  3. In the example, values are strings that start and end with the ' symbol. What's the purpose of double-escaping them?

Tutorial does not inform that the environment variables NEED to be in the template file

While the tutorial states the format of the file

{
  "MyFunction1": {
    "TABLE_NAME": "localtable",
    "BUCKET_NAME": "testBucket"
  },
  "MyFunction2": {
    "TABLE_NAME": "localtable",
    "STAGE": "dev"
  }
}

And the usage of the file:
sam local invoke --env-vars env.json

It will not work unless the variables are defined on your template file, like:

MyFunction1:
    ...
    Properties:
    ...
    Environment:
        Variables:
          TABLE_NAME: tab
          BUCKET_NAME: test

Replace Definition URI in AWS::Serverless::StateMachine with repo bucket

I have published a sam application and want to share publicly. The application contains a step function and couple of lambda functions. When I publish the application template file has following snippets for lambda and step function definitions:

   MyFunction: 
   Type: AWS::Serverless::Function
    Properties:
      CodeUri:
        Bucket: <%REPO_BUCKET%>
    MyStateMachine:
    Type: AWS::Serverless::StateMachine
    Properties:
      DefinitionUri:
        Bucket: my_bucket_name
        Key: v0_1_0/5622d7535a53de02c2fe8a15540abae8

Note: In the case of lambda function code uri refers to <%REPO_BUCKET%> which gets replaced as awsserverlessrepo-changesets-plntc6bfnfj during deployment. However in the case of StateMachine, Definition URI still points to my bucket instead of generic awsservlessrepo bucket.

My S3 bucket is blocked for public access and has the following policy

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "serverlessrepo.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<my_bucket_name>/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "<my_account_no>"
                }
            }
        }
    ]
}

I have tested deploying my published sam applicaton from a different account. Lambda's are deployed correctly. However the cloudformation stack fails during the creation of State Machine with the error message: "Resource handler returned message: "Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied".

Is it a requirement to open my bucket to public read while publishing SAM application with Step functions? If so, why the rule is different from lambda?

Add to guided flag behavior in "sam deploy" documentation

Currently, when using the --guided flag when running "sam deploy", SAM will automatically create a CloudFormation stack named "aws-sam-cli-managed-default-samclisourcebucket" if it has not already been created on the target environment. The creation of this stack is not clearly mentioned in the documentation for "sam deploy".

Related Doc:
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html

Related Issues:
#95

Update Python Lambda debugging instructions

https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging-python.html#serverless-sam-cli-using-debugging-python-ptvsd

Steps for VS Code on OSX

  1. Use pyenv to install Python 3.6 and fix path (see supported Python versions)
  2. brew upgrade aws/tap/aws-sam-cli
  3. sam init --runtime python3.6 --name python-debugging
  4. cd python-debugging
  5. Edit: hello_world/requirements.txt and add the line: ptvsd
  6. Update hello_world/app.py add the following code after the last import
import ptvsd
print('waiting for debugger... you should start it now')
# Enable ptvsd on 0.0.0.0 address and on port 5890 that we'll connect later with our IDE
ptvsd.enable_attach(address=('0.0.0.0', 5890), redirect_output=True)
ptvsd.wait_for_attach()
print('debugger attached')
  1. Debug Tab > Debug menu > Add configuration
    "version": "0.2.0",
    "configurations": [
        

        {
           "name": "SAM CLI Python Hello World",
           "type": "python",
           "request": "attach",
           "port": 5890,
           "host": "localhost",
           "pathMappings": [
               {
                   "localRoot": "${workspaceFolder}/hello_world",
                   "remoteRoot": "/var/task"
               }
           ]
       }
   ]
 }
  1. sam build
  2. sam local invoke -d 5890 --no-event
  3. Debug Tab > Debug menu > SAM CLI Python Hello World
  4. Click green arrow

Additional recommendations

  1. Specify supported Python versions
  2. Define SAM terms for folder concepts i.e. what do we call the file containing template.yaml? continuing handler, code and requirements.txt?

Unable to start docker container

Can you help with below error?

$ sam local start-api -d 3030 --template template.yaml --debugger-path ./ --debug-args "-delveAPI=2"
Mounting LocalServer at http://127.0.0.1:3000/graphql [POST]
Mounting LocalServer at http://127.0.0.1:3000/health [GET]
You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically. You only need to restart SAM CLI if you update your AWS SAM template

  • Tip: There are .env files present. Do "pip install python-dotenv" to use them.
    2020-01-21 23:54:10 * Running on http://127.0.0.1:3000/ (Press CTRL+C to quit)

Invoking .dev/localserver (go1.x)

Fetching lambci/lambda:go1.x Docker container image......
Mounting /Users/qgv313/development/qgv313org/GraphQL/securedcard-data-api as /var/task:ro,delegated inside runtime container
Could not create config directory: mkdir /home/sbx_user1051: permission denied.API server listening at: [::]:3030
.
.
.
2020-01-22T04:54:17Z info layer=debugger launching process with args: [/var/task/.dev/localserver]
could not launch process: fork/exec /var/task/.dev/localserver: no such file or directory

Missing policy in Serverless Policy List

I believe there is a missing policy in the serverless policy list. Once I added the Logging section to my AWS::Serverless::StateMachine definition it failed to deploy until added a policy called CloudWatchLogsFullAccess as follows:

  DistributedTaskRunnerLog:
    Type: AWS::Logs::LogGroup
    Properties:
      LogGroupName: DistributedTaskRunner
      RetentionInDays: 90

  DistributedTaskRunner:
    Type: AWS::Serverless::StateMachine 
    Properties:
      Logging:
        Destinations: 
          - CloudWatchLogsLogGroup:
              LogGroupArn: !GetAtt DistributedTaskRunnerLog.Arn
        IncludeExecutionData: TRUE
        Level: ALL
      Policies:
        - CloudWatchLogsFullAccess

This doesn't appear to be documented anywhere so I was unsure whether to just add it to the docs or whether it was a bug from some missing auto-magic.

Happy to submit a PR if that's the way to go here.

Doc update

In SAM docs, the SAM CLI version needs to be updated. Currently, it is showing the old version in the doc as seen in the screenshot below:

image

Issues With Installation Instructions: CodeBuild, --user flag, LinuxBrew

I think the installation instructions can be significantly simplified if the --user option is removed from the PIP installation instructions:

  1. When installing on a dev machine, it's unlikely that allowing multiple versions of SAM side-by-side would be helpful.
  2. When attempting to set up a CodeBuild buildspec.yml, the --user flag is downright harmful because it installs the sam executable to a location not in PATH and it is not especially clear how to get it in PATH. Also, in a build container, there would be no reason to use the --user flag anyway.

I feel more strongly about the second point than the first as it cost me several hours in trying to set up an all-AWS-tools pipeline for a serverless project.

It's also worth noting that, probably because CodeBuild container commands run as root, the setup script for LinuxBrew fails. Considering that LinuxBrew brings down Ruby as a dependency, I'm unsure whether this really should be the preferred option. I assume this choice was made so as not to require writing separate sets of instructions for apt-get and yum, or, alternatively, because SAM does not publish packages for these package managers. I think SAM should publish these packages if it does not already.

This is a working minimal configuration for a CodeBuild container. I'll be happy to add this if someone tells me where it would belong:

version: 0.2
phases:
  install:
    commands:
      - pip install aws-sam-cli
  build:
    commands:
      - sam build

HttpApi document is not up to date.

As per this PR OpenIdConnectUrl is no longer supported for HttpApi.

But it is still mentioned in the example:

Properties:
  FailOnWarnings: true
  Auth:
    DefaultAuthorizer: OAuth2
    Authorizers:
      OAuth2:
        AuthorizationScopes:
          - scope4
        JwtConfiguration:
          issuer: "https://www.example.com/v1/connect/oauth2"
          audience:
            - MyApi
        IdentitySource: "$request.querystring.param"
      OpenIdAuth:
        AuthorizationScopes:
          - scope1
          - scope2
        OpenIdConnectUrl: "https://www.example.com/v1/connect/oidc/.well-known/openid-configuration"
        JwtConfiguration:
          issuer: "https://www.example.com/v1/connect/oidc"
          audience:
            - MyApi
        IdentitySource: "$request.querystring.param"

This needs to fixed.

Docs for "sam local" don't work with Go

Description:

The sam local commands do not work as documented in the AWS Serverless Application Model Developer Guide. They require an additional call to sam build before they will work.

Steps to reproduce:

Assume a simple project structure such as:

simple-go/
├── cmd
│   └── my-func
│       └── main.go
├── go.mod
├── samconfig.toml
└── template.yaml

With a template.yaml of:

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: 'Simple Go SAM'
Resources:
  ExampleRoot:
    Type: 'AWS::Serverless::Function'
    Properties:
      CodeUri: './cmd/my-func/'
      Handler: 'my-func'
      Runtime: 'go1.x'
      Events:
        Get:
          Type: 'Api'
          Properties:
            Path: '/'
            Method: 'get'

The documentation indicates the following commands should work from within the simple-go directory:

  • sam local invoke
  • sam local start-api

Observed result:

Running sam local invoke gets you:

$ sam local invoke --debug
2020-11-13 20:11:23,487 | Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics
2020-11-13 20:11:23,542 | local invoke command is called
2020-11-13 20:11:23,544 | No Parameters detected in the template
2020-11-13 20:11:23,561 | 2 resources found in the template
2020-11-13 20:11:23,561 | Found Serverless function with name='ExampleRoot' and CodeUri='./cmd/my-func/'
2020-11-13 20:11:23,564 | Found one Lambda function with name 'ExampleRoot'
2020-11-13 20:11:23,564 | Invoking my-func (go1.x)
2020-11-13 20:11:23,564 | No environment variables found for function 'ExampleRoot'
2020-11-13 20:11:23,564 | Environment variables overrides data is standard format
2020-11-13 20:11:23,564 | Loading AWS credentials from session with profile 'None'
2020-11-13 20:11:23,572 | Resolving code path. Cwd=/projects/simple-go, CodeUri=./cmd/my-func/
2020-11-13 20:11:23,572 | Resolved absolute path to code is /projects/simple-go/cmd/my-func
2020-11-13 20:11:23,572 | Code /projects/simple-go/cmd/my-func is not a zip/jar file
2020-11-13 20:11:23,575 | Skip pulling image and use local one: amazon/aws-sam-cli-emulation-image-go1.x:rapid-1.7.0.

2020-11-13 20:11:23,575 | Mounting /projects/simple-go/cmd/my-func as /var/task:ro,delegated inside runtime container
2020-11-13 20:11:23,885 | Starting a timer for 3 seconds for function 'ExampleRoot'
START RequestId: 6961a864-2a06-1dca-b722-c2635e27a299 Version: $LATEST
fork/exec /var/task/my-func: no such file or directory: PathError
fork/exec /var/task/my-func: no such file or directory: PathError
null
END RequestId: 6961a864-2a06-1dca-b722-c2635e27a299
REPORT RequestId: 6961a864-2a06-1dca-b722-c2635e27a299  Init Duration: 57.70 ms Duration: 1.44 ms       Billed Duration: 100 ms Memory Size: 128 MB     Max Memory Used: 16 MB
2020-11-13 20:11:24,184 | Sending Telemetry: {'metrics': [{'commandRun': {'awsProfileProvided': False, 'debugFlagProvided': True, 'region': '', 'commandName': 'sam local invoke', 'duration': 696, 'exitReason': 'success', 'exitCode': 0, 'requestId': '78d50567-a61f-42e3-9fa4-b3d0a2e30179', 'installationId': '72eb7872-74c2-473d-b9e1-6ea1da5e4588', 'sessionId': '7084671a-89d6-4499-b213-bd5cf632c207', 'executionEnvironment': 'CLI', 'pyversion': '3.8.5', 'samcliVersion': '1.7.0'}}]}
2020-11-13 20:11:24,530 | HTTPSConnectionPool(host='aws-serverless-tools-telemetry.us-west-2.amazonaws.com', port=443): Read timed out. (read timeout=0.1)

{"errorType":"PathError","errorMessage":"fork/exec /var/task/my-func: no such file or directory"}

sam local start-api starts the API but fails with almost the same error once a request is made.

Expected result:

my-func should be built and executed or the documentation should be updated to indicate an additional step is necessary.

Working result:

Running sam build followed by sam local invoke does work:

$ sam build                                          
Building codeuri: ./cmd/my-func/ runtime: go1.x metadata: {} functions: ['ExampleRoot']  
Running GoModulesBuilder:Build                                                           
                                            
Build Succeeded                                                                          
                                                                                         
Built Artifacts  : .aws-sam/build                                                        
Built Template   : .aws-sam/build/template.yaml                                          
                                                                                         
Commands you can use next                                                                                                                                                         
=========================                                                                                                                                                         
[*] Invoke Function: sam local invoke                                                    
[*] Deploy: sam deploy --guided                                                                                                                                                   
                                                                                                                                                                                  
$ sam local invoke --debug                                                                                                                    
2020-11-13 20:23:37,364 | Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics                                              
2020-11-13 20:23:37,415 | local invoke command is called                                                                                                                          
2020-11-13 20:23:37,416 | No Parameters detected in the template                                                                                                                  
2020-11-13 20:23:37,432 | 2 resources found in the template                                                                                                                       
2020-11-13 20:23:37,432 | Found Serverless function with name='ExampleRoot' and CodeUri='ExampleRoot'                                                                             
2020-11-13 20:23:37,434 | Found one Lambda function with name 'ExampleRoot'                                                                                                       
2020-11-13 20:23:37,434 | Invoking my-func (go1.x)                                                                                                                                
2020-11-13 20:23:37,434 | No environment variables found for function 'ExampleRoot'                                                                                               
2020-11-13 20:23:37,434 | Environment variables overrides data is standard format                                                                                                 
2020-11-13 20:23:37,434 | Loading AWS credentials from session with profile 'None'                                                                                                
2020-11-13 20:23:37,443 | Resolving code path. Cwd=/projects/simple-go/.aws-sam/build, CodeUri=ExampleRoot                                                                        
2020-11-13 20:23:37,443 | Resolved absolute path to code is /projects/simple-go/.aws-sam/build/ExampleRoot           
2020-11-13 20:23:37,443 | Code /projects/simple-go/.aws-sam/build/ExampleRoot is not a zip/jar file                                                                               
2020-11-13 20:23:37,447 | Skip pulling image and use local one: amazon/aws-sam-cli-emulation-image-go1.x:rapid-1.7.0.                                                             
                                                                                                                                                                                  2020-11-13 20:23:37,447 | Mounting /projects/simple-go/.aws-sam/build/ExampleRoot as /var/task:ro,delegated inside runtime container                                              2020-11-13 20:23:37,755 | Starting a timer for 3 seconds for function 'ExampleRoot'                                                                                               
2020/11/14 04:23:37 Simple Function                                                                                                                                               
2020/11/14 04:23:37 <nil>                                                                                                                                                         
2020-11-13 20:23:40,756 | Function 'ExampleRoot' timed out after 3 seconds                                                                                                        
2020-11-13 20:23:41,122 | Sending Telemetry: {'metrics': [{'commandRun': {'awsProfileProvided': False, 'debugFlagProvided': True, 'region': '', 'commandName': 'sam local invoke',
 'duration': 3755, 'exitReason': 'success', 'exitCode': 0, 'requestId': 'cef4037b-9689-4610-876c-93413bc413bb', 'installationId': '72eb7872-74c2-473d-b9e1-6ea1da5e4588', 'session
Id': '547dafa5-7733-42bc-96d1-1ebe099d469b', 'executionEnvironment': 'CLI', 'pyversion': '3.8.5', 'samcliVersion': '1.7.0'}}]}                                                    
2020-11-13 20:23:41,437 | Telemetry response: 200  

Additional environment details (Ex: Windows, Mac, Amazon Linux etc)

$ go version
go version go1.15.4 linux/amd64
$ sam --version
SAM CLI, version 1.7.0
$ cat /etc/issue
Ubuntu 20.04.1 LTS \n \l

Maybe there should be additional instructions for non-interpreted languages?

Originally from: aws/aws-sam-cli#2377

Hello World build does not work on Windows network drive

Using Windows 10 Pro the SAM CLI Hello World sample works correctly from a local drive. However the exact same thing DOES NOT WORK from a mapped network drive, due to what appears to be two separate errors. I'm unable to find any mention of this in troubleshooting or online suggestions how to solve.

Firstly, local C: drive works fine.

C:\temp\sam-app>sam local invoke
Invoking app.lambda_handler (python3.8)
Skip pulling image and use local one: public.ecr.aws/sam/emulation-python3.8:rapid-1.46.0-x86_64.

Mounting C:\temp\sam-app\.aws-sam\build\HelloWorldFunction as /var/task:ro,delegated inside runtime container
START RequestId: 8ef83873-5981-4683-afef-3d4fa5a7c25e Version: $LATEST
END RequestId: 8ef83873-5981-4683-afef-3d4fa5a7c25e
REPORT RequestId: 8ef83873-5981-4683-afef-3d4fa5a7c25e  Init Duration: 0.26 ms  Duration: 106.67 ms     Billed Duration: 107 ms Memory Size: 128 MB     Max Memory Used: 128 MB
{"statusCode": 200, "body": "{\"message\": \"hello world\"}"}

When using a mapped network drive sam build loses path components when expanding the full network path. I have Z: mapped to \fs\A so when invoking sam build from Z:\B\C\D\E\sam-app the build incorrectly expands to \fs\D\E when it should be \fs\A\B\C\D\E.

Z:\B\C\D\E\sam-app>sam build
Your template contains a resource with logical ID "ServerlessRestApi", which is a reserved logical ID in AWS SAM. It could result in unexpected behaviors and is not recommended.
Building codeuri: Z:\B\C\D\E\sam-app\hello_world runtime: python3.8 metadata: {} architecture: x86_64 functions: ['HelloWorldFunction']
Running PythonPipBuilder:ResolveDependencies
Running PythonPipBuilder:CopySource

Build Succeeded

Built Artifacts  : \\fs\D\E\sam-app\.aws-sam\build
Built Template   : \\fs\D\E\sam-app\.aws-sam\build\template.yaml

Commands you can use next
=========================
[*] Invoke Function: sam local invoke -t \\fs\D\E\sam-app\.aws-sam\build\template.yaml
[*] Test Function in the Cloud: sam sync --stack-name {stack-name} --watch
[*] Deploy: sam deploy --guided --template-file \\fs\D\E\sam-app\.aws-sam\build\template.yaml

Understandably sam local invoke won't work with an incorrect path. However as the mount couldn't possibly with a path that doesn't exist, shouldn't it throw an error?

Z:\B\C\D\E\sam-app>sam local invoke -t \\fs\D\E\sam-app\.aws-sam\build\template.yaml
Invoking app.lambda_handler (python3.8)
Image was not found.
Removing rapid images for repo public.ecr.aws/sam/emulation-python3.8
Building image.......................................................................................................................................................................................................................................................
Skip pulling image and use local one: public.ecr.aws/sam/emulation-python3.8:rapid-1.46.0-x86_64.

Mounting \\fs\D\E\sam-app\.aws-sam\build\HelloWorldFunction as /var/task:ro,delegated inside runtime container
START RequestId: 9bd74879-c5b2-45c0-849e-27498085806e Version: $LATEST
Traceback (most recent call last): Unable to import module 'app': No module named 'app'
END RequestId: 9bd74879-c5b2-45c0-849e-27498085806e
REPORT RequestId: 9bd74879-c5b2-45c0-849e-27498085806e  Init Duration: 0.27 ms  Duration: 77.91 ms      Billed Duration: 78 ms  Memory Size: 128 MB     Max Memory Used: 128 MB
{"errorMessage": "Unable to import module 'app': No module named 'app'", "errorType": "Runtime.ImportModuleError", "stackTrace": []}

If I try the correct fully expanded network path it still doesn't work. This path definitely exists so either the mount fails for a different reason, or the mount succeeds but something else goes wrong.

Z:\B\C\D\E\sam-app>sam local invoke -t \\fs\A\B\C\D\E\sam-app\.aws-sam\build\template.yaml
Invoking app.lambda_handler (python3.8)
Skip pulling image and use local one: public.ecr.aws/sam/emulation-python3.8:rapid-1.46.0-x86_64.

Mounting \\fs\A\B\C\D\E\sam-app\.aws-sam\build\HelloWorldFunction as /var/task:ro,delegated inside runtime container
START RequestId: 079e9263-5e6f-47fe-a240-7179418da8ec Version: $LATEST
Traceback (most recent call last): Unable to import module 'app': No module named 'app'
END RequestId: 079e9263-5e6f-47fe-a240-7179418da8ec
REPORT RequestId: 079e9263-5e6f-47fe-a240-7179418da8ec  Init Duration: 0.30 ms  Duration: 78.15 ms      Billed Duration: 79 ms  Memory Size: 128 MB     Max Memory Used: 128 MB
{"errorMessage": "Unable to import module 'app': No module named 'app'", "errorType": "Runtime.ImportModuleError", "stackTrace": []}

So I try again this time using the mapped drive letter. Still doesn't work; again either because the mount fails for a different reason or something else goes wrong.

Z:\B\C\D\E\sam-app>sam local invoke -t z:\B\C\D\E\sam-app\.aws-sam\build\template.yaml
Invoking app.lambda_handler (python3.8)
Skip pulling image and use local one: public.ecr.aws/sam/emulation-python3.8:rapid-1.46.0-x86_64.

Mounting z:\B\C\D\E\sam-app\.aws-sam\build\HelloWorldFunction as /var/task:ro,delegated inside runtime container
START RequestId: b8043728-86dd-429b-8507-d87fce093da8 Version: $LATEST
Traceback (most recent call last): Unable to import module 'app': No module named 'app'
END RequestId: b8043728-86dd-429b-8507-d87fce093da8
REPORT RequestId: b8043728-86dd-429b-8507-d87fce093da8  Init Duration: 0.24 ms  Duration: 77.65 ms      Billed Duration: 78 ms  Memory Size: 128 MB     Max Memory Used: 128 MB
{"errorMessage": "Unable to import module 'app': No module named 'app'", "errorType": "Runtime.ImportModuleError", "stackTrace": []}

Golang Debugging - Error starting Mock Server

I've been trying to get step through debugging working following the guide on MacOS 11.1. Starting with the basic hello-world template I'm able to build the project and run it locally. If I follow the guide and build delve and the application as instructed, I receive an error message stating Error starting mock server: fork/exec /var/rapid/init: no such file or directory are these instructions missing some details around setup?

My project is structured as:

.
├── .aws-sam
│   ├── build
│   │   ├── HelloWorldFunction
│   │   │   └── hello-world
│   │   ├── delve
│   │   │   └── dlv
│   │   └── template.yaml
│   └── build.toml
├── Makefile
├── README.md
├── hello-world
│   ├── go.mod
│   ├── go.sum
│   ├── main.go
│   └── main_test.go
└── template.yaml

The template file has not been changed from the sample application.

I've added the following debug section to the Makefile:

.PHONY: debug
debug:
	GOARCH=amd64 GOOS=linux go build -o .aws-sam/build/delve/dlv github.com/go-delve/delve/cmd/dlv
	GOARCH=amd64 GOOS=linux go build -gcflags='-N -l' -o .aws-sam/build/HelloWorldFunction ./hello-world
	sam local start-api --debug -d 5986 --debugger-path .aws-sam/build/delve --debug-args "-delveAPI=2"
GOARCH=amd64 GOOS=linux go build -o .aws-sam/build/delve/dlv github.com/go-delve/delve/cmd/dlv
GOARCH=amd64 GOOS=linux go build -gcflags='-N -l' -o .aws-sam/build/HelloWorldFunction ./hello-world
sam local start-api --debug -d 5986 --debugger-path .aws-sam/build/delve --debug-args "-delveAPI=2"
2021-01-19 08:17:10,655 | Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics
2021-01-19 08:17:10,788 | local start-api command is called
2021-01-19 08:17:10,793 | No Parameters detected in the template
2021-01-19 08:17:10,818 | 2 resources found in the template
2021-01-19 08:17:10,819 | Found Serverless function with name='HelloWorldFunction' and CodeUri='HelloWorldFunction'
2021-01-19 08:17:10,825 | No Parameters detected in the template
2021-01-19 08:17:10,845 | 2 resources found in the template
2021-01-19 08:17:10,845 | Found '1' API Events in Serverless function with name 'HelloWorldFunction'
2021-01-19 08:17:10,845 | Detected Inline Swagger definition
2021-01-19 08:17:10,845 | Lambda function integration not found in Swagger document at path='/hello' method='get'
2021-01-19 08:17:10,845 | Found '0' APIs in resource 'ServerlessRestApi'
2021-01-19 08:17:10,845 | Removed duplicates from '0' Explicit APIs and '1' Implicit APIs to produce '1' APIs
2021-01-19 08:17:10,846 | 1 APIs found in the template
2021-01-19 08:17:10,847 | Mounting HelloWorldFunction at http://127.0.0.1:3000/hello [GET]
2021-01-19 08:17:10,847 | You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically. You only need to restart SAM CLI if you update your AWS SAM template
2021-01-19 08:17:10,847 | Localhost server is starting up. Multi-threading = False
2021-01-19 08:17:10  * Running on http://127.0.0.1:3000/ (Press CTRL+C to quit)
2021-01-19 08:17:14,834 | Constructed String representation of Event to invoke Lambda. Event: {"body": null, "headers": {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "en-US,en;q=0.9", "Connection": "keep-alive", "Cookie": "_xsrf=2|2b874059|3eb43ef1dfc6f978fbbc0ad98fb47dc3|1609784256; username-127-0-0-1-8888=\"2|1:0|10:1610483981|23:username-127-0-0-1-8888|44:NTRjYjg1MGQwZTFhNDE4YWI3NDY3Y2I5ZGQ2YTNiODM=|85f1aa629160bd9a7b67f2336db4a7934bcdc8ed6d2be3458bd51ac59be7a3db\"", "Host": "127.0.0.1:3000", "Sec-Fetch-Dest": "document", "Sec-Fetch-Mode": "navigate", "Sec-Fetch-Site": "none", "Sec-Fetch-User": "?1", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36", "X-Forwarded-Port": "3000", "X-Forwarded-Proto": "http"}, "httpMethod": "GET", "isBase64Encoded": false, "multiValueHeaders": {"Accept": ["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"], "Accept-Encoding": ["gzip, deflate, br"], "Accept-Language": ["en-US,en;q=0.9"], "Connection": ["keep-alive"], "Cookie": ["_xsrf=2|2b874059|3eb43ef1dfc6f978fbbc0ad98fb47dc3|1609784256; username-127-0-0-1-8888=\"2|1:0|10:1610483981|23:username-127-0-0-1-8888|44:NTRjYjg1MGQwZTFhNDE4YWI3NDY3Y2I5ZGQ2YTNiODM=|85f1aa629160bd9a7b67f2336db4a7934bcdc8ed6d2be3458bd51ac59be7a3db\""], "Host": ["127.0.0.1:3000"], "Sec-Fetch-Dest": ["document"], "Sec-Fetch-Mode": ["navigate"], "Sec-Fetch-Site": ["none"], "Sec-Fetch-User": ["?1"], "Upgrade-Insecure-Requests": ["1"], "User-Agent": ["Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"], "X-Forwarded-Port": ["3000"], "X-Forwarded-Proto": ["http"]}, "multiValueQueryStringParameters": null, "path": "/hello", "pathParameters": null, "queryStringParameters": null, "requestContext": {"accountId": "123456789012", "apiId": "1234567890", "domainName": "127.0.0.1:3000", "extendedRequestId": null, "httpMethod": "GET", "identity": {"accountId": null, "apiKey": null, "caller": null, "cognitoAuthenticationProvider": null, "cognitoAuthenticationType": null, "cognitoIdentityPoolId": null, "sourceIp": "127.0.0.1", "user": null, "userAgent": "Custom User Agent String", "userArn": null}, "path": "/hello", "protocol": "HTTP/1.1", "requestId": "ee87596e-922b-4e35-9e75-47c5c1f7aa1a", "requestTime": "19/Jan/2021:14:17:10 +0000", "requestTimeEpoch": 1611065830, "resourceId": "123456", "resourcePath": "/hello", "stage": "Prod"}, "resource": "/hello", "stageVariables": null, "version": "1.0"}
2021-01-19 08:17:14,835 | Found one Lambda function with name 'HelloWorldFunction'
2021-01-19 08:17:14,835 | Invoking hello-world (go1.x)
2021-01-19 08:17:14,835 | Environment variables overrides data is standard format
2021-01-19 08:17:14,836 | Loading AWS credentials from session with profile 'None'
2021-01-19 08:17:14,859 | Resolving code path. Cwd=/Users/xxxxxxxxxxx/sam-app/.aws-sam/build, CodeUri=HelloWorldFunction
2021-01-19 08:17:14,859 | Resolved absolute path to code is /Users/xxxxxxxxxxx/sam-app/.aws-sam/build/HelloWorldFunction
2021-01-19 08:17:14,859 | Code /Users/xxxxxxxxxxx/sam-app/.aws-sam/build/HelloWorldFunction is not a zip/jar file
2021-01-19 08:17:15,985 | Failed to download image with name amazon/aws-sam-cli-emulation-image-go1.x:debug-1.15.0
2021-01-19 08:17:15,986 | Failed to download a new amazon/aws-sam-cli-emulation-image-go1.x:debug-1.15.0 image. Invoking with the already downloaded image.
2021-01-19 08:17:15,986 | Mounting /Users/xxxxxxxxxxx/sam-app/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated inside runtime container
2021-01-19 08:17:16,388 | Setting up SIGTERM interrupt handler
2021-01-19 08:17:17,131 | Cleaning all decompressed code dirs
2021-01-19 08:17:17,131 | No response from invoke container for HelloWorldFunction
2021-01-19 08:17:17,132 | Invalid lambda response received: Lambda response must be valid json
2021-01-19 08:17:17 127.0.0.1 - - [19/Jan/2021 08:17:17] "GET /hello HTTP/1.1" 502 -
2021-01-19 08:17:17 127.0.0.1 - - [19/Jan/2021 08:17:17] "GET /favicon.ico HTTP/1.1" 403 -
2021-01-19 08:19:32,351 | Constructed String representation of Event to invoke Lambda. Event: {"body": null, "headers": {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "en-US,en;q=0.9", "Connection": "keep-alive", "Cookie": "_xsrf=2|2b874059|3eb43ef1dfc6f978fbbc0ad98fb47dc3|1609784256; username-127-0-0-1-8888=\"2|1:0|10:1610483981|23:username-127-0-0-1-8888|44:NTRjYjg1MGQwZTFhNDE4YWI3NDY3Y2I5ZGQ2YTNiODM=|85f1aa629160bd9a7b67f2336db4a7934bcdc8ed6d2be3458bd51ac59be7a3db\"", "Host": "127.0.0.1:3000", "Sec-Fetch-Dest": "document", "Sec-Fetch-Mode": "navigate", "Sec-Fetch-Site": "none", "Sec-Fetch-User": "?1", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36", "X-Forwarded-Port": "3000", "X-Forwarded-Proto": "http"}, "httpMethod": "GET", "isBase64Encoded": false, "multiValueHeaders": {"Accept": ["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"], "Accept-Encoding": ["gzip, deflate, br"], "Accept-Language": ["en-US,en;q=0.9"], "Connection": ["keep-alive"], "Cookie": ["_xsrf=2|2b874059|3eb43ef1dfc6f978fbbc0ad98fb47dc3|1609784256; username-127-0-0-1-8888=\"2|1:0|10:1610483981|23:username-127-0-0-1-8888|44:NTRjYjg1MGQwZTFhNDE4YWI3NDY3Y2I5ZGQ2YTNiODM=|85f1aa629160bd9a7b67f2336db4a7934bcdc8ed6d2be3458bd51ac59be7a3db\""], "Host": ["127.0.0.1:3000"], "Sec-Fetch-Dest": ["document"], "Sec-Fetch-Mode": ["navigate"], "Sec-Fetch-Site": ["none"], "Sec-Fetch-User": ["?1"], "Upgrade-Insecure-Requests": ["1"], "User-Agent": ["Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"], "X-Forwarded-Port": ["3000"], "X-Forwarded-Proto": ["http"]}, "multiValueQueryStringParameters": null, "path": "/hello", "pathParameters": null, "queryStringParameters": null, "requestContext": {"accountId": "123456789012", "apiId": "1234567890", "domainName": "127.0.0.1:3000", "extendedRequestId": null, "httpMethod": "GET", "identity": {"accountId": null, "apiKey": null, "caller": null, "cognitoAuthenticationProvider": null, "cognitoAuthenticationType": null, "cognitoIdentityPoolId": null, "sourceIp": "127.0.0.1", "user": null, "userAgent": "Custom User Agent String", "userArn": null}, "path": "/hello", "protocol": "HTTP/1.1", "requestId": "ee87596e-922b-4e35-9e75-47c5c1f7aa1a", "requestTime": "19/Jan/2021:14:17:10 +0000", "requestTimeEpoch": 1611065830, "resourceId": "123456", "resourcePath": "/hello", "stage": "Prod"}, "resource": "/hello", "stageVariables": null, "version": "1.0"}
2021-01-19 08:19:32,352 | Found one Lambda function with name 'HelloWorldFunction'
2021-01-19 08:19:32,352 | Invoking hello-world (go1.x)
2021-01-19 08:19:32,352 | Environment variables overrides data is standard format
2021-01-19 08:19:32,352 | Resolving code path. Cwd=/Users/xxxxxxxxxxx/sam-app/.aws-sam/build, CodeUri=HelloWorldFunction
2021-01-19 08:19:32,353 | Resolved absolute path to code is /Users/xxxxxxxxxxx/sam-app/.aws-sam/build/HelloWorldFunction
2021-01-19 08:19:32,354 | Code /Users/xxxxxxxxxxx/sam-app/.aws-sam/build/HelloWorldFunction is not a zip/jar file
2021-01-19 08:19:33,625 | Failed to download image with name amazon/aws-sam-cli-emulation-image-go1.x:debug-1.15.0
2021-01-19 08:19:33,625 | Failed to download a new amazon/aws-sam-cli-emulation-image-go1.x:debug-1.15.0 image. Invoking with the already downloaded image.
2021-01-19 08:19:33,625 | Mounting /Users/xxxxxxxxxxx/sam-app/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated inside runtime container
2021-01-19 08:19:33,982 | Setting up SIGTERM interrupt handler
2021/01/19 14:19:34 Error starting mock server: fork/exec /var/rapid/init: no such file or directory
2021-01-19 08:19:34,725 | Cleaning all decompressed code dirs
2021-01-19 08:19:34,725 | No response from invoke container for HelloWorldFunction
2021-01-19 08:19:34,725 | Invalid lambda response received: Lambda response must be valid json
2021-01-19 08:19:34 127.0.0.1 - - [19/Jan/2021 08:19:34] "GET /hello HTTP/1.1" 502 -
2021-01-19 08:19:34 127.0.0.1 - - [19/Jan/2021 08:19:34] "GET /favicon.ico HTTP/1.1" 403 -

Schedule event, Enabled property value case

Does not work

CWSchedule:
   Type: Schedule
   Properties:
     Schedule: 'rate(1 minute)'
     Name: TestSchedule
     Description: test schedule
     Enabled: False

Works

CWSchedule:
  Type: Schedule
  Properties:
    Schedule: 'rate(1 minute)'
    Name: TestSchedule
    Description: test schedule
    Enabled: false

The property "Enabled" for Type: Schedule accepts "false" instead of "False" (first letter casing). Can someone please verify.

Issue with S3 bucket creation after aws configure step

When a user has copy / pasted the access / secret key credentials from .csv and performs the S3 bucket creation setp, aws cli make_bucket can fail with "SignatureDoesNotMatch" error (
"The request signature we calculated does not match the signature'")
(similar to: aws/aws-cli#602)

Step should recommend copy / paste directly from browser for the aws configure step

aws-cli/1.16.238 Python/3.6.0 Windows/10 botocore/1.12.228

sam deploy does not incorporate capabilities into cloudformation stack create

Hi there,
I'm using sam to deploy my serverless applications. I have resources in a nested cloudformation stack and require the use of CAPABILITY_AUTO_EXPAND but when I include this in my sam SAMToolkit.devenv file it doesn't actually use these capabilities on nested stack deployments. When I issue the command sam deploy --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND that seems to do the trick.

SAMToolkit.devenv:

  SAM_ODIN="*"
  
  # This is where we want our dev stacks to be deployed
  SAM_REGION="us-east-1"
  MODULE=$(basename $(pwd))
  # This strips out the 'IntegTests' portion of the folder name when executing integration tests from *IntegTest directories which interferes with stack name and lambda name construction.
  if [[ $MODULE == *"IntegTests"* ]]; then
   MODULE=${MODULE/IntegTests/""}
  fi
  
  LOWER_MODULE=$(echo $MODULE | tr /A-Z/ /a-z/)
  SAM_STACK="${USER}-${MODULE}"
  
  # The S3 bucket used to store code archives (auto-created).
  SAM_BUCKET="${USER}-sam-dev-${LOWER_MODULE}-${SAM_REGION}"
  
  # Any CloudFormation parameters your stack may require
  SAM_NODEJS_HANDLER=$(basename $(pwd))/
  SAM_DEPLOY_ARGS=" --capabilities [ CAPABILITY_IAM CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND ]"
  SAM_DEPLOY_ARGS=" --parameters ParameterKey=PipelinesControlledRegionBucket,ParameterValue=${SAM_BUCKET} ParameterKey=Stage,ParameterValue=local"
  #SAM_DEPLOY_ARGS+=" ParameterKey=CrossAccountLambdaAccessArns,ParameterValue='arn:aws:iam::*:root'"
  #SAM_DEPLOY_ARGS+=" ParameterKey=CrossAccountRoleExternalId,ParameterValue=*"
  SAM_DEPLOY_ARGS+=" ParameterKey=ApiWhitelist,ParameterValue='arn:aws:iam::*:root'"
  SAM_DEPLOY_ARGS+=" ParameterKey=ApiWhitelistReadOnly,ParameterValue='arn:aws:iam::*:root'"
  SAM_DEPLOY_ARGS+=" ParameterKey=ManagedApiWhitelist,ParameterValue='arn:aws:iam::*:root'"
  # Any directories relative to the root of the runtime closure to be included in the final archive
  SAM_DATAFILES=""

generate event for sns about new put event in S3 -- bug/example

Hey all,
SAM is great, but I am missing documentation on how to generate local events for debugging and local runs. for S3 it works as shown on the site. however if I am looking for an SNS based events (which alerts on an S3 event) I am a bit at a lost:

sam local generate-event sns notification --message "($cat s3_put_event.json)"

the above was suggested as solution but it intorduces quotes in the message part:
the message portion of the notification looks something like this:

"Message": "{
  "Records": [
    {...}]... }"

the problematic part is the encapsulating quotes around the message that shouldn't be there.,

any help would be appreciated,
Dan

Allow support to disable default execute-api REST API endpoint [Feature Request]

Given that CloudFormation resource AWS::ApiGateway::RestApi generated by AWS::Serverless::Api supports DisableExecuteApiEndpoint property which allows users to specify whether clients can invoke underlying API by using the default execute-api endpoint, can we add support for a similar property in AWS::Serverless::Api as well?

Request: Add support for a property in AWS::Serverless::Api which can be passed directly to the DisableExecuteApiEndpoint property of underlying AWS::ApiGateway::RestApi resource.

Motivation: It will be helpful for customers who use custom domain names for REST APIs and want to ensure that all traffic to their API only goes through the custom domain name and not the default endpoint (which doesn't use TLS 1.2)

References:
What is SAM
Resources generated by AWS::Serverless::Api

hw-tutorial fails for chinese region

The hello-world tutorial as it currently stands fails in the china region ... Here are the biggest issues:

  1. when deploying the application, the url deployed is incorrect (should be amazonaws.com.cn, not amazon.com):

image

This is what it looks like on using sam deploy:

image

  1. Even when successfully connecting to the correct URL, using the curl command, the response is "message": "null"

image

Outdated `sam deploy` documentation on capabilities

The documentation on the --capabilities option in doc_source/sam-cli-command-reference-sam-deploy.md includes the following:

The only valid values are CAPABILITY_IAM and CAPABILITY_NAMED_IAM.

This section was apparently written before nested applications were supported and should be updated to reflect at least CAPABILITY_AUTO_EXPAND as described in doc_source/serverless-sam-template-nested-applications.md.

Incorrect link in AWS::Serverless::Function

The 'Deploying Serverless Applications Gradually' link under the AutoPublishCodeSha256 property points to the Portuguese/Brazilian documentation page. Not a huge deal, just kind of amusing, and thought you should be aware of it.

Mention alternative install method using pip for sam-cli on Linux

Most Linux users don't use Brew, as the OS already has a package manager. Python pip is an alternative method for installing sam-cli but the documentation indicates Brew as the only option.

I'll leave my opinion of Brew out of this issue, but the documentation should reference all possible methods of installing the client.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.