Skip to content
This repository was archived by the owner on Sep 26, 2023. It is now read-only.

Commit e13dbf7

Browse files
authored
v0.8.2.2
1 parent 63b1d66 commit e13dbf7

File tree

178 files changed

+6317
-62939
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

178 files changed

+6317
-62939
lines changed

.github/workflows/dotnet-core.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: LambdaSharp CI/CD
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- v*
8+
- WIP-v*
9+
pull_request:
10+
branches:
11+
- main
12+
13+
jobs:
14+
build:
15+
runs-on: ubuntu-18.04
16+
steps:
17+
- uses: actions/checkout@v2
18+
19+
- name: Setup .NET Core
20+
uses: actions/setup-dotnet@v1
21+
with:
22+
dotnet-version: 3.1.301
23+
24+
- name: Set LambdaSharp environment variable
25+
run: echo "LAMBDASHARP=$GITHUB_WORKSPACE" >> $GITHUB_ENV
26+
27+
# CLI Tests
28+
- name: Test LambdaSharp.CloudFormation
29+
run: dotnet test --configuration Release Tests/Tests.LambdaSharp.CloudFormation
30+
31+
- name: Test LambdaSharp.Modules
32+
run: dotnet test --configuration Release Tests/Tests.LambdaSharp.Modules
33+
34+
# - name: Test LambdaSharp.Compiler
35+
# run: dotnet test --configuration Release Tests/Tests.LambdaSharp.Compiler
36+
37+
# SDK Tests
38+
- name: Test LambdaSharp
39+
run: dotnet test --configuration Release Tests/Tests.LambdaSharp
40+
41+
- name: Test LambdaSharp.App.EventBus
42+
run: dotnet test --configuration Release Modules/LambdaSharp.App.EventBus/Tests.LambdaSharp.App.EventBus
43+
44+
# Module Tests
45+
- name: Test LambdaSharp.Core
46+
run: dotnet test --configuration Release Modules/LambdaSharp.Core/Tests/Tests.ProcessLogEventsTests

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ cloudformation.json
1616
# Misc
1717
.sandbox
1818
params.yml
19-
appsettings.Development.json
19+
appsettings.Development.json
20+
src/CloudFormationResourceSpecification.json

Docs/articles/APIGateway.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,22 @@ MyResponse GetItems(
3737
) { ... }
3838
```
3939

40-
Common query string parameters can be captured as a class and easily reused across methods. For example, the following class defines the same query string parameters as in the previous example. The determination if a parameter is required is slightly different, because the LambdaSharp CLI cannot determine if a property/field initializer is specified. Therefore, it is necessary to use the `JsonProperty` attribute with the `Required` property to specify if a query parameter is required or not.
40+
Common query string parameters can be captured as a class and easily reused across methods. For example, the following class defines the same query string parameters as in the previous example. The determination if a parameter is required is slightly different, because the LambdaSharp CLI cannot determine if a property/field initializer is specified. Therefore, it is necessary to use the `JsonPropertyName` attribute with the `Required` property to specify if a query parameter is required or not.
4141

4242
```csharp
4343
public class FilterOptions {
4444
4545
//--- Properties ---
46-
[JsonProperty(PropertyName = "contains", Required = Required.DisallowNull)]
46+
[JsonPropertyName("contains")]
47+
[Required]
4748
public string Contains { get; set; }
4849
49-
[JsonProperty(PropertyName = "offset", Required = Required.DisallowNull)]
50+
[JsonPropertyName("offset")]
51+
[Required]
5052
public int Offset { get; set; } = 0;
5153
52-
[JsonProperty(PropertyName = "limit", Required = Required.DisallowNull)]
54+
[JsonPropertyName("limit")]
55+
[Required]
5356
public int Limit { get; set; } = 10;
5457
}
5558
```
@@ -83,13 +86,13 @@ AddAlbumResponse AddAlbum(
8386
) { ... }
8487
```
8588

86-
The validation of the request body is controlled by the definition of the `AddAlbumRequest` type. The following type definition makes the `Title` property mandatory while keeping `YearPublished` optional. The constraints of the type fields and properties are controlled using the [JsonProperty](https://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonPropertyAttribute.htm) and [JsonRequired](https://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonRequiredAttribute.htm) attributes.
89+
The validation of the request body is controlled by the definition of the `AddAlbumRequest` type. The following type definition makes the `Title` property mandatory while keeping `YearPublished` optional. The constraints of the type fields and properties are controlled using the [JsonPropertyName](https://docs.microsoft.com/en-us/dotnet/api/system.text.json.serialization.jsonpropertynameattribute) attribute from _System.Text.Json_ namespace, as well as the [Required](https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.requiredattribute) and [Range](https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.rangeattribute) attributes from the _System.ComponentModel.DataAnnotations_ namespace.
8790

8891
```csharp
8992
class AddAlbumRequest {
9093
9194
//--- Properties ---
92-
[JsonRequired]
95+
[Required]
9396
public string Title { get; set; }
9497
9598
public int? YearPublished { get; set; }

Docs/articles/Events-LambdaError.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -118,14 +118,6 @@ The <code>AppName</code> property holds the application name.
118118
<i>Type</i>: String
119119
</dd>
120120
121-
<dt><code>AppDomainName</code></dt>
122-
<dd>
123-
124-
The <code>AppDomainName</code> property holds the application domain name.
125-
126-
<i>Type</i>: String
127-
</dd>
128-
129121
<dt><code>Platform</code></dt>
130122
<dd>
131123

Docs/articles/ReleaseNotes-Hicetas.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Release notes for LambdaSharp "Hicetas" (v0.8)
44
keywords: release, notes, hicetas
55
---
66

7-
# LambdaSharp "Hicetas" Release (v0.8.2.1) - 2021-02-17
7+
# LambdaSharp "Hicetas" Release (v0.8.2.2) - 2021-03-17
88

99
> Hicetas was a Greek philosopher of the Pythagorean School. He was born in Syracuse. Like his fellow Pythagorean Ecphantus and the Academic Heraclides Ponticus, he believed that the daily movement of permanent stars was caused by the rotation of the Earth around its axis. When Copernicus referred to Nicetus Syracusanus (Nicetus of Syracuse) in _De revolutionibus orbium coelestium_ as having been cited by Cicero as an ancient who also argued that the Earth moved, it is believed that he was actually referring to Hicetas. [(Wikipedia)](https://en.wikipedia.org/wiki/Hicetas)
1010
@@ -141,6 +141,21 @@ Part of this release, _LambdaSharp.Core_ functions were ported to .NET Core 3.1
141141

142142
## Releases
143143

144+
### (v0.8.2.2) - 2021-03-17
145+
146+
#### BREAKING CHANGES
147+
148+
* SDK
149+
* Renamed _LambdaSharp.CloudWatch_ assembly to _LambdaSharp.EventBridge_ to align with new AWS branding for CloudWatch Events.
150+
151+
#### Features
152+
153+
* CLI
154+
* Added automatic, daily refresh of CloudFormation specification to surface latest capabilities. Use `--force-refresh` option to check for new CloudFormation specification more frequently.
155+
* Added caching of AWS profile information used for building, publishing, and deploying modules. Use `--force-refresh` option to bypass cache.
156+
* Removed `util download-cloudformation-spec` command since it is no longer needed to CloudFormation specification.
157+
* Changed behavior for `deploy` to allow importing dependencies when no build policy is provided.
158+
144159
### (v0.8.2.1) - 2021-02-17
145160

146161
#### Fixes
@@ -192,7 +207,7 @@ Part of this release, _LambdaSharp.Core_ functions were ported to .NET Core 3.1
192207

193208
* CLI
194209
* Added support for self-contained .NET 5 Lambda functions.
195-
* Update Blazor WebAssembly app template to target .NET 5.
210+
* Updated Blazor WebAssembly app template to target .NET 5.
196211
* Removed dependency on _Amazon.Lambda.Tools_. _Amazon.Lambda.Tools_ is no longer requires to build, publish, or deploy LambdaSharp modules.
197212
* Updated CloudFormation to v22.0.0.
198213
* Allowed resource types to have an empty or omitted `Attributes` section.

Docs/articles/VideoTutorials.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ keywords: video, tutorial, getting started, overview
66

77
# Video Tutorials
88

9+
Subscribe to the [LambdaSharp YouTube channel](https://www.youtube.com/channel/UC9zH5HkC6dHvuFJR6_XZzFg) to stay up-to-date on the latest videos.
10+
911
## Getting Started
1012

1113
It's easy to get started building Serverless .NET application on AWS with LambdaSharp. In in this 10 minute tutorial, we will install the LambdaSharp CLI, create a configuration for it, and a deployment tier for your LambdaSharp modules. Along the way, I will explain what resources are part of the configuration and deployment tier and what purpose they play.
@@ -22,4 +24,10 @@ In this video, I'm going through the steps for creating your first Serverless .N
2224

2325
Learn how you can build and deploy your serverless solution in minutes using LambdaSharp, an open-source CLI and framework for serverless .NET Core application development on AWS. The solution shares the same C# code for the backend and front end leveraging AWS Lambda functions and the Blazor WebAssembly framework. Finally, see a demonstration of how easy it is to integrate with Amazon CloudWatch Logs, metrics, and Amazon EventBridge.
2426

25-
<iframe width="560" height="315" src="https://www.youtube.com/embed/wN_0mQ7AUg8" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
27+
<iframe width="560" height="315" src="https://www.youtube.com/embed/wN_0mQ7AUg8" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
28+
29+
## Serverless .NET Patterns: Service Composition
30+
31+
This presentation covers some of the serverless design patterns, such as CQRS (Command and Query Responsibility Separation), CloudFormation stacks, sharing of resources, nested vs. side-by-side composition, and then put it all together with some code samples found at: https://github.com/LambdaSharp/ServerlessPatterns-ServiceComposition
32+
33+
<iframe width="560" height="315" src="https://www.youtube.com/embed/P8o7ZI8XCRg" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Docs/articles/toc.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,16 @@
4848
- name: Debugging
4949
href: Debugging.md
5050

51+
- name: JSON Serialization
52+
href: JSON-Serialization.md
53+
5154
- name: Samples
5255
href: Samples.md
5356

5457
- name: Releases
5558
items:
5659

57-
- name: Hicetas (v0.8.2.1)
60+
- name: Hicetas (v0.8.2.2)
5861
href: ReleaseNotes-Hicetas.md
5962

6063
- name: Geminus (v0.7.0.17)

Docs/cli/Index.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ The LambdaSharp CLI is used to process the module definition, compile the C# pro
3535
## Utility Commands
3636
1. [`util create-invoke-methods-schema`](Tool-Util-CreateInvokeMethodsSchema.md): create JSON schema for compiled methods
3737
1. [`util delete-orphan-logs`](Tool-Util-DeleteOrphanLogs.md): delete orphaned Lambda CloudWatch logs
38-
1. [`util download-cloudformation-spec`](Tool-Util-DownloadCloudFormationSpec.md): download the CloudFormation types specification
3938
1. [`util list-lambdas`](Tool-Util-ListLambdas.md): list Lambda functions by CloudFormation stack
4039
1. [`util list-modules`](Tool-Util-ListModules.md): list published LambdaSharp modules at an origin
4140
1. [`util show-kinesis-failed-logs`](Tool-Util-ShowKinesisFailedLogs.md): show the failed Kinesis Firehose records from the S3 logging bucket

Docs/cli/Tool-Build.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ lash build
8585
(optional) Always build function packages
8686
</dd>
8787

88+
<dt><code>--force-refresh</code></dt>
89+
<dd>
90+
91+
(optional) Always refresh manifests from their origin
92+
</dd>
93+
8894
<dt><code>--build-policy &lt;FILEPATH&gt;</code></dt>
8995
<dd>
9096

Docs/cli/Tool-Deploy.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,12 @@ If the argument refers to a module definition, the `deploy` command invokes the
165165
(optional) Always build function packages
166166
</dd>
167167

168+
<dt><code>--force-refresh</code></dt>
169+
<dd>
170+
171+
(optional) Always refresh manifests from their origin
172+
</dd>
173+
168174
<dt><code>--build-policy &lt;FILEPATH&gt;</code></dt>
169175
<dd>
170176

0 commit comments

Comments
 (0)