Szablon AWS SAM

Szablon AWS SAM

Aplikację bez serwera można budować przy użyciu usług dostarczanych przez AWS, takich jak AWS Serverless Model (SAM). AWS zapewnia AWS SAM CLI do opracowywania aplikacji opartych na SAM. Ułatwia środowisko wykonania podobne do Lambda do budowania, testowania i debugowania aplikacji dostarczanych przez szablony SAM. Ponadto za pomocą AWS SAM CLI możemy wdrożyć aplikację SAM na AWS.

Co obejmiemy?

W tym przewodniku zbadamy szablon AWS SAM.

Co to jest AWS Sam?

AWS SAM jest używany do tworzenia aplikacji bez serwera w AWS. Zarówno Sam, jak i Sam Cli są pod licencją open source. SAM definiuje zasoby używane w aplikacjach bez serwera. Ma krótkie składni do oznaczania interfejsów API, funkcji, baz danych i mapowania źródeł zdarzeń. Składniki SAM są przekształcane i rozszerzane na składni AWS Cloudformation. Aplikacje można modelować za pomocą YAML. W ten sposób aplikacje bez serwera można szybko budować.

Funkcje AWS Sam

SAM AWS może być zintegrowany z innymi usługami AWS, a zatem ma kilka korzyści z tworzenia aplikacji bez serwera:

  1. Korzystając z AWS SAM, organizacja odpowiednich komponentów i zasobów jest uproszczona. Można go użyć do dystrybucji konfiguracji między zasobami, a wszystkie odpowiednie zasoby można wdrażać zbiorowo.
  1. Podczas wdrażania składnia SAM są rozszerzane na natywne składni AWS CloudFormation. Daje nam to opcję niezawodnego wdrażania z CloudFormation.
  1. Możemy opracowywać aplikacje bez serwera w wielu językach wykonawczych. Za pomocą SAM CLI możemy lokalnie budować, pilotować i naprawić aplikacje bez serwera. Ponadto SAM CLI można zintegrować z dostarczonymi zestawami AWS.
  1. AWS Sam CLI można zainstalować na wielu dużych dystrybucjach opartych na systemie Linux, Mac i Windows.

Patrząc na szablon SAM

Szablon SAM AWS jest bardzo podobny do szablonu AWS Cloudformation, jednak istnieją pewne poważne różnice między nimi pod względem następujących sekcji szablonów:

  1. Sekcja transformacji: Szablon AWS SAM używa jawnej deklaracji formularza, transforma: AWS :: Serverless-2016-10-31, ta deklaracja określa, że ​​ten szablon AWS CloudFormation to szablon AWS SAM.
  1. Sekcja Globals: AWS Sam ma unikalną sekcję Globals, która deklaruje zasoby, które mają wspólne konfiguracje. Sekcja Globals działa z AWS :: Serverless :: Funkcja, AWS :: Serverless :: API, AWS ::.
  1. Sekcja zasobów: Sekcja zasobów szablonu SAM AWS może również zawierać zasoby w zakresie chmurów.
  1. Sekcja parametrów: Szablon SAM zawiera sekcję parametrów do przekazywania wartości w czasie wykonywania. W tej sekcji zawiera obiekty, które tworzą polecenie „SAM wdrażanie” do tworzenia dodatkowych monitów dla użytkownika.

Pozostałe sekcje szablonów…

Oprócz wyżej wymienionych sekcji pozostałe sekcje idą z sekcją pliku szablonu CloudFormation z odpowiednią nazwą. Szablon AWS SAM wymaga tylko Sekcje transformacji i zasobów jako obowiązkowy. Możemy jednak również dodać inne sekcje. Oprócz powyższej sekcji możemy również mieć poniższą sekcję w szablonie AWS SAM:

  1. Opis: Zawiera opcjonalny opis szablonu.
  1. Metadane: Jest to również sekcja opcjonalna, która zawiera dalsze informacje dotyczące szablonu.
  1. Mapowania: Mapowanie klawiszy z odpowiednimi wartościami do określania wartości parametrów warunkowych.
  1. Warunki: Zawiera reguły lub wymagania, które rządzą Jeśli specyficzne Zasoby są generowane lub jeśli określone właściwości zasobu mają wartość podczas tworzenia lub aktualizacji stosu.
  1. Wyjścia: Deklaruje wartości zwracane, gdy oglądane są właściwości stosu.

Sekcje szablonów omówione powyżej można dodać w dowolnej kolejności. Jednak należy trzymać się logicznego zamówienia. AWS SAM CLI ma plik konfiguracyjny formatu pliku TOML. Ten plik, nazwany jako SamConfig.toml, trzyma domyślne parametry dla poleceń SAM CLI.

Aby zweryfikować szablon SAM AWS, użyj formatu polecenia:

Sam poproś [opcje]

Przykład szablonu SAM

Oto przykładowe szablony AWS SAM zawierające określone sekcje i odpowiednie podpowiedzi próbki, które pojawiają się z 'SAM Wdrożenie -Druged' Komenda:

Sekcja parametrów:

Parametry:
Ourpar:
Typ: String
Domyślnie: Ourpalval
Przykładowy monit wyjściowy:
Parametr OurPar [OurParval]:

Sekcja zasobów:

Zasoby:
Witaj świecie:
Typ: AWS :: Serverless :: Funkcja
Nieruchomości:
CODEURI: hello_world/
Handler: App.lambda_handler
Czas wykonawczy: Python3.7
CodesigningConfigarn: ARN: AWS: Lambda: US-East-1: XXXXXXXXXXX: Code-Signing-Config: CSC-12E12345DB1234567
Przykładowy monit wyjściowy:
#Konfiguracje podpisywania kodu w definicjach funkcji
Chcesz podpisać swój kod? [T/N]:
#Prosimy podać szczegóły profilu podpisywania następujących funkcji i warstw
#Signing Detale profilu dla funkcji „Helloworld”
Podpisanie nazwy profilu:
Podpisanie ID konta właściciela profilu (opcjonalnie):
#Signing Details dla warstwy „mylayer”, która jest używana przez funkcje „helloworld”
Podpisanie nazwy profilu:
Podpisanie ID konta właściciela profilu (opcjonalnie):

Wniosek

W tym przewodniku zbadaliśmy szablon AWS SAM. Następną rzeczą, którą możesz spróbować, jest wdrożenie prostej aplikacji Hello World Server Bez serwera zawierającego plik szablonu AWS SAM.