<aside> 💡

java-eventsを触ってみる

</aside>

1.Setup

$ git clone [<https://github.com/awsdocs/aws-lambda-developer-guide.git>](<https://github.com/awsdocs/aws-lambda-developer-guide.git>)
$ cd aws-lambda-developer-guide/sample-apps/java-events
java-events$ ./1-create-bucket.sh
make_bucket: lambda-artifacts-a5e4xmplb5b22e0d #結果

2.Deploy

エラー発生(DskipTestsの部分がエラーを起こしている)

java-events$ ./2-deploy.sh mvn
[INFO] Scanning for projects...
[INFO] -----------------------< com.example:java-events >-----------------------
[INFO] Building java-events-function 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
...

mvn 2.png

解決策

 ./2-deploy.sh mvn clean install -DskipTests
[INFO] Scanning for projects...
[INFO] -----------------------< com.example:java-events >-----------------------
[INFO] Building java-events-function 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
...

<aside> ☝🏻

色んなハンドラ変化なかったのでファイルを見ていく

</aside>

AWS SAM(Serverless Application Model)

Lambda関数のデプロイ定義ファイル(テンプレート)

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: An AWS Lambda application that calls the Lambda API.
Resources:
  function:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: build/distributions/java-basic.zip
      Handler: example.HandlerDivide
      Runtime: java21
      Description: Java function
      MemorySize: 2048
      Timeout: 10
      # Function's execution role
      Policies:
        - AWSLambdaBasicExecutionRole
        - AWSLambda_ReadOnlyAccess
        - AWSXrayWriteOnlyAccess
        - AWSLambdaVPCAccessExecutionRole
      Tracing: Active

ストリーム処理

for文の場合

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = 0;
for (int num : numbers) {
    sum += num;
}
System.out.println(sum); // 出力: 15

streamを使った場合

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream().mapToInt(n -> n).sum();
System.out.println(sum); // 出力: 15