diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 82b6163fd5..0000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,36 +0,0 @@ - - -**Description:** - - - -**Steps to reproduce the issue:** -1. -2. -3. - -**Observed result:** - -**Expected result:** - -**Additional environment details (Ex: Windows, Mac, Amazon Linux etc)** - -**Output of `sam --version`**: - -**Optional Debug logs**: - -`Add --debug flag to command you are running` diff --git a/samcli/__init__.py b/samcli/__init__.py index 0fad9dd1de..1942add1e7 100644 --- a/samcli/__init__.py +++ b/samcli/__init__.py @@ -2,4 +2,4 @@ SAM CLI version """ -__version__ = '0.16.0' +__version__ = '0.16.1' diff --git a/samcli/commands/local/lib/sam_function_provider.py b/samcli/commands/local/lib/sam_function_provider.py index 784593c3ec..7eed0c8a8b 100644 --- a/samcli/commands/local/lib/sam_function_provider.py +++ b/samcli/commands/local/lib/sam_function_provider.py @@ -5,6 +5,7 @@ import logging import six +from samcli.commands.local.cli_common.user_exceptions import InvalidLayerVersionArn from .exceptions import InvalidLayerReference from .provider import FunctionProvider, Function, LayerVersion from .sam_base_provider import SamBaseProvider @@ -238,6 +239,14 @@ def _parse_layer_info(list_of_layers, resources): """ layers = [] for layer in list_of_layers: + if layer == 'arn:aws:lambda:::awslayer:AmazonLinux1803': + LOG.debug('Skipped arn:aws:lambda:::awslayer:AmazonLinux1803 as the containers are AmazonLinux1803') + continue + + if layer == 'arn:aws:lambda:::awslayer:AmazonLinux1703': + raise InvalidLayerVersionArn('Building and invoking locally only supports AmazonLinux1803. See ' + 'https://aws.amazon.com/blogs/compute/upcoming-updates-to-the-aws-lambda-execution-environment/ for more detials.') # noqa: E501 + # If the layer is a string, assume it is the arn if isinstance(layer, six.string_types): layers.append(LayerVersion(layer, None)) diff --git a/tests/integration/buildcmd/test_build_cmd.py b/tests/integration/buildcmd/test_build_cmd.py index 0ca79efb5a..9705132708 100644 --- a/tests/integration/buildcmd/test_build_cmd.py +++ b/tests/integration/buildcmd/test_build_cmd.py @@ -118,11 +118,9 @@ class TestBuildCommand_NodeFunctions(BuildIntegBase): FUNCTION_LOGICAL_ID = "Function" @parameterized.expand([ - ("nodejs4.3", False), ("nodejs6.10", False), ("nodejs8.10", False), ("nodejs10.x", False), - ("nodejs4.3", "use_container"), ("nodejs6.10", "use_container"), ("nodejs8.10", "use_container"), ("nodejs10.x", "use_container") diff --git a/tests/unit/commands/local/lib/test_sam_function_provider.py b/tests/unit/commands/local/lib/test_sam_function_provider.py index 5777972b64..c2ac653dc0 100644 --- a/tests/unit/commands/local/lib/test_sam_function_provider.py +++ b/tests/unit/commands/local/lib/test_sam_function_provider.py @@ -2,6 +2,7 @@ from mock import patch from parameterized import parameterized +from samcli.commands.local.cli_common.user_exceptions import InvalidLayerVersionArn from samcli.commands.local.lib.provider import Function, LayerVersion from samcli.commands.local.lib.sam_function_provider import SamFunctionProvider from samcli.commands.local.lib.exceptions import InvalidLayerReference @@ -424,6 +425,31 @@ def test_raise_on_invalid_layer_resource(self, resources, layer_reference): with self.assertRaises(InvalidLayerReference): SamFunctionProvider._parse_layer_info([layer_reference], resources) + @parameterized.expand([ + ({ + "Function": { + "Type": "AWS::Serverless::Function", + "Properties": { + } + } + }, "arn:aws:lambda:::awslayer:AmazonLinux1703") + ]) + def test_raise_on_AmazonLinux1703_layer_provided(self, resources, layer_reference): + with self.assertRaises(InvalidLayerVersionArn): + SamFunctionProvider._parse_layer_info([layer_reference], resources) + + def test_must_ignore_opt_in_AmazonLinux1803_layer(self): + resources = {} + + list_of_layers = ["arn:aws:lambda:region:account-id:layer:layer-name:1", + "arn:aws:lambda:::awslayer:AmazonLinux1803"] + actual = SamFunctionProvider._parse_layer_info(list_of_layers, resources) + + for (actual_layer, expected_layer) in zip(actual, [LayerVersion( + "arn:aws:lambda:region:account-id:layer:layer-name:1", + None)]): + self.assertEquals(actual_layer, expected_layer) + def test_layers_created_from_template_resources(self): resources = { "Layer": {