Vous pouvez le faire tout de suite avec Serverless Framework Serverless with AWS (API + Lambda [java] est facile à configurer)

introduction

Mise en place de l'environnement

Serverless Framework

Installer une infrastructure sans serveur

$ node -v
v5.12.0
$ npm install -g serverless
$ serverless —version
1.5.1

Configuration de l'AWS CLI

$ pip install awscli
$ aws configure
AWS Access Key ID [None]:(Access Key)
AWS Secret Access Key [None]:(Secret Key)
Default region name [None]: ap-northeast-1
Default output format [None]:json

Déployer avec une infrastructure sans serveur

Créer un service

$ serverless create --template aws-java-maven --path myService
・
・
Serverless: Successfully generated boilerplate for template: "aws-java-maven"
Serverless: NOTE: Please update the "service" property in serverless.yml with your service name

Importer dans STS (Eclipse)

Modifier serverless.yml + Build

serverless.yml


provider:
  name: aws
  runtime: java8
  stage: prod
  region: ap-northeast-1

Déployer la partie 1 (Lambda uniquement)

$ cd myService
$ serverless deploy -v
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading service .zip file to S3 (1.98 MB)...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
CloudFormation - UPDATE_IN_PROGRESS - AWS::CloudFormation::Stack - aws-java-maven-prod
・
・
Serverless: Stack update finished...
Service Information
service: aws-java-maven
stage: prod
region: ap-northeast-1
api keys:
  None
endpoints:
  None
functions:
  aws-java-maven-prod-hello: arn:XXXXXXXX
$ echo '{"key1":"value1","key2":"value2","key3":"value3"}' > event.json
$ serverless invoke --function hello -p event.json
{
    "statusCode": 200,
    "body": "{\"message\":\"Go Serverless v1.x! Your function executed successfully!\",\"input\":{\"key1\":\"value1\",\"key2\":\"value2\",\"key3\":\"value3\"}}",
    "headers": {
        "X-Powered-By": "AWS Lambda & serverless"
    },
    "isBase64Encoded": false
}

Déployer la partie 2 (API Gateway + Lambda)

serverless.yml


functions:
  hello:
    handler: com.serverless.Handler
    events:
      - http:
          path: users/create
          method: get
$ serverless deploy -v
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading service .zip file to S3 (1.98 MB)...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
CloudFormation - UPDATE_IN_PROGRESS - AWS::CloudFormation::Stack - aws-java-maven-prod
・
・
Service Information
service: aws-java-maven
stage: prod
region: ap-northeast-1
api keys:
  None
endpoints:
  GET - https://XXXXXXXX.execute-api.ap-northeast-1.amazonaws.com/prod/users/create
functions:
  aws-java-maven-prod-hello: arn:XXXXXXXX
$ curl https://XXXXXXXX.execute-api.ap-northeast-1.amazonaws.com/prod/users/create
{"message":"Go Serverless v1.x! Your function executed successfully!","input":{"resource":"/users/create","path":"/users/create","httpMethod":"GET","headers":{"Accept":"*/*","CloudFront-Forwarded-Proto":"https","CloudFront-Is-Desktop-Viewer":"true","CloudFront-Is-Mobile-Viewer":
・
・

Supprimer la pile

$ serverless remove
Serverless: Getting all objects in S3 bucket...
Serverless: Removing objects in S3 bucket...
Serverless: Removing Stack...
Serverless: Checking Stack removal progress...
.....................
Serverless: Stack removal finished...

Résumé

Recommended Posts

Vous pouvez le faire tout de suite avec Serverless Framework Serverless with AWS (API + Lambda [java] est facile à configurer)
Comment déployer Java sur AWS Lambda avec Serverless Framework
Remarques sur ce qu'il faut faire lorsque EC2 est configuré avec t2.micro
Comment utiliser le framework Java avec AWS Lambda! ??
Java sur AWS Lambda est-il lent?
Avec [AWS] CodeStar, vous pouvez créer un projet Spring (Java) s'exécutant sur Lambda en seulement 3 minutes! !!
Pouvez-vous le faire? Java EE
[Même les débutants peuvent le faire! ] Comment créer un environnement Java sous Windows 10 (JDK14.0.1)
Comment utiliser l'API Java avec des expressions lambda
[Même les débutants peuvent le faire! ] Comment installer Eclipse sur Windows 10 (construction de l'environnement Java)
Je veux accéder à l'API avec Rails sur plusieurs docker-composes configurés localement
Vous pouvez le faire avec une copie! Programmation orientée aspect (Android)
Modèle de framework sans serveur pour planifier le démarrage / l'arrêt d'EC2 dans Lambda
Publiez régulièrement des images de tweets sur Twitter avec AWS Lambda + Java
Créer un SlackBot avec AWS lambda et API Gateway en Java
Quand j'ai essayé d'utiliser le kit AWS SDK avec Ruby + Lambda, `sam local` était en panne.