티스토리 뷰
JAVA Aws Credential만들기
Java에서 AWS의 서비스에 접근 하려면 Java에 AWSCredentials 오브젝트가 필요합니다.
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
import com.amazonaws.services.redshift.AmazonRedshiftClient;
public class Hello {
public static void main(String[] args){
AWSCredentialsProvider acprovider = DefaultAWSCredentialsProviderChain.getInstance();
AWSCredentials credentials = acprovider.getCredentials();
System.out.println(credentials);
AmazonRedshiftClient client = new AmazonRedshiftClient(credentials);
System.out.println(client);
}
}
일단 소스코드는 위와 같습니다.
사용방법
위 소스코드를 실행 하면 됩니다.
실행하기 전에 .aws/credentials에 key와 secret을 넣으면 된다.
결과
com.amazonaws.auth.BasicAWSCredentials@37bba400
com.amazonaws.services.redshift.AmazonRedshiftClient@815b41f
클라이언트는 AWS 레드시프트라는 DB 서비스의 클라이언트로 해놓았는데 다른 Aws에 있는 서비스들의 클라이언트를 써도 됩니다.
9~11번이 주된 내용이다.
aws 예제 같은걸 보다보면 죄다 Credential이 필요하다. 왜냐하면 내 서버에 뭔가 띄워놨는데 그게 트래픽, io등 내가 아니라도 누가 쓰면 돈이 나가기 때문입니다.
그래서 access_key, secret_access_key 이런걸 먼저 세팅 해야 된다는 내용이 나옵니다.
위 짤은 맥인데 .aws/credentials에 aws접속 할 수 있는 key, secret등을 넣어 주면 java가 실행 될때 이걸 읽어와서 aws관련 클래스에 자동으로 넣어주는 방식입니다.
DefaultAWSCredentialsProviderChain이라는 클래스가 있는데 이걸 쓰면 로컬에 위 경로에 있는 credentials안에 [default] [loceal] [dev]등의 블럭에 들어 있는 key, secret중에서 [default]에 있는걸 불러와서 CredentialProvider를 만듭니다.
Lambda call하기
https://aws.amazon.com/ko/blogs/developer/invoking-aws-lambda-functions-from-java/
package com.plutusds.data.server.caller;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
import com.amazonaws.services.lambda.AWSLambda;
import com.amazonaws.services.lambda.AWSLambdaClient;
import com.amazonaws.services.lambda.AWSLambdaClientBuilder;
import com.amazonaws.services.lambda.model.InvokeRequest;
import com.amazonaws.services.lambda.model.InvokeResult;
public class LambdaCaller {
private AWSCredentials credentials;
public String call() {
// credential
AWSCredentialsProvider acprovider = DefaultAWSCredentialsProviderChain.getInstance();
// lambda client build
AWSLambda awsLambda = AWSLambdaClientBuilder.standard()
.withCredentials(acprovider)
.build();
// call
InvokeRequest request = new InvokeRequest()
.withFunctionName("wallets-info-server-dev-walletinfo")
;
// result
InvokeResult result = awsLambda.invoke(request);
System.out.println(result);
return "";
}
}
end.
'개발 > AWS' 카테고리의 다른 글
aws aurora db 레플리케이션 걸기 (0) | 2018.07.25 |
---|---|
aws에 domain(도메인)구입한 것 등록하기 (1) | 2018.07.13 |
aws configure로 profile 설정하기(local, dev, qa, prod) (0) | 2018.03.15 |
mac에서 aws profile등록 하는 방법(credentials, config) (0) | 2018.03.05 |
serverless로 aws-java-gradle 앱 빌드하고 배포하기 (0) | 2018.02.22 |
- Total
- Today
- Yesterday
- Linux
- docker container tissue box
- docker container
- 개발자
- vim
- shellscript
- 도커티슈케이스
- 도커티슈박스
- 싱가폴
- docker container whale
- docker container case
- 2017 티스토리 결산
- docker container tissue
- Sh
- 도커컨테이너
- 이직
- 도커각티슈케이스
- 도커각티슈박스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |