SAMを使ってみる

SAMのハンズオンをやってみた。

SAMとは、Serverless Application Modelの接頭辞で、サーバレスアプリケーションを素早く開発するためのツールセットです。CloudFormationにより、必要なリソースのデプロイが行われます。今回は、Cloud9環境を用いてハンズオンを行いました。

SAMの使い方

大きな流れは以下の通りです。

  1. サーバレスアプリケーションの雛形作成(sam init
  2. コーディング
  3. ビルド(sam build
  4. ローカル環境でのテスト(sam local start-api
  5. デプロイ(sam deploy

サーバレスアプリケーションの雛形作成

sam init

今回は、以下のような構成を取りました。

  • テンプレートの種類: AWS Quick Start Templates
  • 使用するテンプレート: Serverless API
  • ランタイム: Node.js 16.x
  • X-Rayの使用有無: No X-Ray
  • アプリケーション名: sam-app
sam init

以下のとおり選択していきます。

You can preselect a particular runtime or package type when using the `sam init` experience.
Call `sam init --help` to learn more.

Which template source would you like to use?
        1 - AWS Quick Start Templates
        2 - Custom Template Location
Choice: 1

Choose an AWS Quick Start application template
        1 - Hello World Example
        2 - Multi-step workflow
        3 - Serverless API
        4 - Scheduled task
        5 - Standalone function
        6 - Data processing
        7 - Infrastructure event management
        8 - Lambda EFS example
        9 - Machine Learning
Template: 3

Which runtime would you like to use?
        1 - dotnet6
        2 - dotnetcore3.1
        3 - nodejs16.x
        4 - nodejs14.x
        5 - nodejs12.x
Runtime: 3

Based on your selections, the only Package type available is Zip.
We will proceed to selecting the Package type as Zip.

Based on your selections, the only dependency manager available is npm.
We will proceed copying the template using npm.

Would you like to enable X-Ray tracing on the function(s) in your application?  [y/N]: N

Project name [sam-app]: sam-app

Cloning from https://github.com/aws/aws-sam-cli-app-templates (process may take a moment)

    -----------------------
    Generating application:
    -----------------------
    Name: sam-app
    Runtime: nodejs16.x
    Architectures: x86_64
    Dependency Manager: npm
    Application Template: quick-start-web
    Output Directory: .
    
    Next steps can be found in the README file at ./sam-app/README.md
        

    Commands you can use next
    =========================
    [*] Create pipeline: cd sam-app && sam pipeline init --bootstrap
    [*] Validate SAM template: sam validate
    [*] Test Function in the Cloud: sam sync --stack-name {stack-name} --watch
    

SAM CLI update available (1.70.0); (1.57.0 installed)
To download: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html

コーディング

ディレクトリ構成を確認しておきます。

Pixel Watchを買った

昨年、予約を開始してからずっと悩んでいたが、ついに購入した件。

買い方

アメリカン・エキスプレス・カード + メンバーシップ・リワード・プラスで購入したので、100円につき3ポイント(3%)の還元があり、実際に1,194ポイントの還元があった。このポイントを1ポイント1円として使うかどうかは自分次第ではあるが。

GitHub Codespacesを試しつつ、Hugoへ移行する

GitHubが提供する、Web版VSCodeを使った開発環境「GitHub Codespaces」を使うことができるようになっていたので、それを使いがてら、静的サイトジェネレータをhexoからhugoに変更し、GitHub Actionsを使ってGitHub Pagesで公開出来るようにしようと思う。

ITエンジニアに求められる姿勢、または能力に関する私見

はじめに

あけましておめでとうございます。新年一発目の記事は、昨年、私の仕事に対する課題とそれに対する私見を明らかにし、自らの戒めを作ろうと試みたメモを整理したものです。

「ITエンジニア」にも色々いますが、特に大手企業から受託してシステム・インテグレーションを行っている人々のことを想定しています。あまり関係ないかもしれません。

私が思うITエンジニアに求められる姿勢、または能力には3つのものがあると思います。

  • 自社の課題と、顧客企業の課題を捉え、または捉えようとし、それを解決し、または解決しようとする姿勢、能力
  • 常に身の回りに疑問を持ち続け、それを解決し、または解決しようとする姿勢、能力
  • 言語を正しく運用する能力

ここでは、個々に対して私見を整理したいと思います。

ブログ環境をGitHubからAWSに移行しました

今までの構成

今までは、静的CMSであるHexoを使ってローカル環境で各ページを生成し、生成されたページをGitHub Pagesで公開する、という構成を取っていました。

この構成を取っていた理由は以下の2つです。

  • ブログ記事をMarkdown形式で書くことができ、HTMLを作るために必要なテンプレートや設定ファイルをgitで管理できるため
  • GitHub Pagesは、リポジトリにgit pushさえすればページが公開され、かつ無料で気軽に使うことができるため

しかし思うところがあり、今回、この構成をAWSに移行することにしました。