๋๋ฐ์ด์ค ๋ฑ๋ก ์์
- ์ธ์ฆ์ ์์ฑ
- DB์ ์ธ์ฆ์ ์ ์ฅ
- ์ธ์ฆ์์ ์ ์ฑ ์ฐ๊ฒฐ
- thing ์์ฑ
- thing์ ์ธ์ฆ์ ๋ฐ ์ ์ฑ ์ฐ๊ฒฐ
- device shadow ๋ฑ๋ก
- DB์ ๋๋ฐ์ด์ค ์ ์ฅ
๐ ์ด ๊ณผ์ ์ ๊ฑฐ์ณ์ ๋๋ฐ์ด์ค๊ฐ AWS์ DB ๋ชจ๋์ ์ ์ฅ๋๋๋ก ํ์๋ค.
1. ์ธ์ฆ์ ์์ฑ ๋ฐ DB์ ์ธ์ฆ์ ์ ์ฅ
import software.amazon.awssdk.services.iot.IotAsyncClient;
import software.amazon.awssdk.services.iot.model.*;
public Mono<CreateKeysAndCertificateResponse> createCertificate() {
// ์ธ์ฆ์ ํ์ฑํ์ํค๊ธฐ
CreateKeysAndCertificateRequest request = CreateKeysAndCertificateRequest.builder()
.setAsActive(true)
.build();
return iotAsyncClient.createKeysAndCertificate(request)
.handle(( ... )) // ์ฝ๋ ์๋ต
}
DB์ ์ ์ฅ์ํค๋ ๊ฒ์ ReactiveMongoRepository๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค.
2. ์ธ์ฆ์์ ์ ์ฑ ์ฐ๊ฒฐ
import software.amazon.awssdk.services.iot.IotAsyncClient;
import software.amazon.awssdk.services.iot.model.*;
public Mono<Boolean> attachPolicy(CertificateDto certificateDto) {
AttachPolicyRequest request = AttachPolicyRequest.builder()
.policyName("์ ์ฑ
์ด๋ฆ")
.target(certificateDto.getCertificateArn())
.build();
return iotAsyncClient.attachPolicy(request)
.handle(( ... )) // ์ฝ๋ ์๋ต
}
3. thing ์์ฑ
import software.amazon.awssdk.services.iot.IotAsyncClient;
import software.amazon.awssdk.services.iot.model.*;
public Mono<DeviceDto> createThing(DeviceDto deviceDto) {
CreateThingRequest request = CreateThingRequest.builder()
.thingName(deviceDto.getDeviceId())
.build();
return iotAsyncClient.createThing(request)
.handle(( ... )) // ์ฝ๋ ์๋ต
}
4. thing์ ์ธ์ฆ์ ๋ฐ ์ ์ฑ ์ฐ๊ฒฐ
public Mono<DeviceDto> attachThingPrincipal(DeviceDto deviceDto, CertificateDto certificateDto) {
AttachThingPrincipalRequest request = AttachThingPrincipalRequest.builder()
.thingName(deviceDto.getDeviceId())
.principal(certificateDto.getCertificateArn())
.build();
return iotAsyncClient.attachThingPrincipal(request)
.handle(( ... )) // ์ฝ๋ ์๋ต
}
5. device shadow ๋ฑ๋ก
๐ ์ด์ ๊ด๋ จ๋ ์ฝ๋๋ iotDataPlaneAsyncClient.updateThingShadow() ๋ฉ์๋๋ฅผ ํ์ฉํด์ ๋ฑ๋ก์ํค๋ฉด ๋๋ค.
ํด๋น ๋ด์ฉ์ device shadow ๊ฐ๋ ๊ณผ ๊ด๋ จํด์ ์ ๋ฆฌํ ๋ด์ฉ์ด ๋ง์ผ๋ฏ๋ก ์ถํ์ ๋ค์ ์ถ๊ฐํ๊ฒ ๋ค !
6. DB์ ๋๋ฐ์ด์ค ์ ์ฅ
์ด ๋ํ ReactiveMongoRepository๋ฅผ ์ฌ์ฉํด์ ์ ์ฅํ๋ฉด ๋๋ค.
๋๋ฐ์ด์ค ์ญ์
์ญ์ API๋ฅผ ํธ์ถํ ๋๋ ์์ ๊ณผ์ ์์ ์ฐ๊ฒฐ์์ผฐ๋ ๊ฒ์ ๋ชจ๋ ํด์ ์ํจ ํ ์ญ์ ํ๋ฉด ๋๋ค.
- ๋๋ฐ์ด์ค์ ์ฐ๊ฒฐ๋ ์ธ์ฆ์ ๋ฐ ์ ์ฑ ๋ถ๋ฆฌ
- DB์์ ๋๋ฐ์ด์ค์ ํด๋น ์ธ์ฆ์ ์ญ์
๐ ํด๋น ๋ด์ฉ์ ์ฝ๋๋ ๋ค์ ๊ธ์ ๊ธฐ๋กํ๊ฒ ๋ค.
'AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS] Cognito๋ก ์ฌ์ฉ์ ์ธ์ฆํ๊ธฐ (ํ์๊ฐ์ ๋ถํฐ ํํด๊น์ง) (0) | 2025.02.14 |
---|---|
[AWS] AWS IoT ๋๋ฐ์ด์ค ์ญ์ ์ ์ฐจ ์ฝ๋๋ก ์์๋ณด๊ธฐ (0) | 2024.12.13 |
[AWS] AWS SDK๋ฅผ ํ์ฉํด AWS IoT ๋๋ฐ์ด์ค ๋ฑ๋กํ๊ธฐ (0) | 2024.11.26 |
[AWS] AWS IoT Core ์ด๊ฒ์ ๊ฒ (1) | 2024.11.21 |
[AWS] AWS Cognito์ OAuth (3) | 2024.10.28 |