전체 글 116

AWS Cognito Python Sample Code

AWS Cognito를 통해 임시 AWS credentials를 발급받는 Python 예제 코드입니다.ADMIN_NO_SRP_AUTH 방식을 사용하기 때문에 AWS credentials가 제공된 환경에서 동작합니다. Pre-RequirementsAWS Cognito의 User Pool과 Identity Pool이 생성되어 있어야합니다.User Pool App을 생성할 때 Generate client secret 옵션이 비활성화되어야 합니다.User Pool App의 ADMIN_NO_SRP_AUTH 옵션이 활성화되어야 합니다.Auth Flow # -*- coding: utf-8 -*-import boto3 class Cognito(): region = 'ap-northeast-2' user_pool_id ..

Python 2017.01.11

rabbitmq-c arm cross complie

1. 요구환경autoconf v2.59+automake v1.9+libtool v2.2+pkg-config 2. 다운로드wget https://github.com/alanxz/rabbitmq-c/archive/v0.7.0.tar.gztar -zxvf v0.7.0.tar.gzcd rabbitmq-c 3. 라이브러리 설치할 디렉토리 생성mkdir ./build 4. configure 생성autoreconf -i 5. Makefile 생성: 크로스컴파일된 openssl 라이브러리 경로 바라보도록 설정./configure CC=arm-hisiv400-linux-gnueabi-gcc \ AR=arm-hisiv400-linux-gnueabi-ar \ RANLIB=arm-hisiv400-linux-gnueabi-ra..

Linux 2017.01.10

[DRF] prefetch_related와 SerializerMethodField

N:M 관계의 두 모델이 있다. Device 모델이 Group 모델에 대해 realted_name='devices'라고 정의하였기 때문에, Group Object는 'devices'라는 이름으로 관련된 Device 객체들에 접근할 수 있다. class Group(models.Model): name = models.CharField(max_length=32, null=True) class Device(models.Model): name = models.CharField(max_length=32, null=True) owner = models.ForeignKey(UserModel, on_delete=models.CASCADE) group = models.ManyToManyField(Group, related..

Django 2016.12.16

[python] 트래픽 초과 시 메일 발송하기

트래픽 한계치, GMail 계정과 비밀번호를 설정해야 한다. #!/usr/bin/env python from email.MIMEMultipart import MIMEMultipart from email.MIMEBase import MIMEBase from email.MIMEText import MIMEText from email.header import Header from email import Encoders from urllib2 import urlopen import time import math import smtplib MAIL_SEND_INTERVAL = 3600 #sec INTERVAL = 1 #sec WARN_KBPS = 212234 #kbps PUB_IP = urlopen('http:/..

Python 2016.12.01

[node.js] querysting을 통한 form-data 파싱

POST로 전달된 form-data는 아래의 포맷을 따른다. ------WebKitFormBoundarypx8jEvVTBCRPDUzMContent-Disposition: form-data; name="foo" John------WebKitFormBoundarypx8jEvVTBCRPDUzMContent-Disposition: form-data; name="bar" 123456789 querysting 모듈을 사용해서 key와 value를 추출하고, value의 불필요한 문자열은 정규식 치환을 사용하여 제거한다. var http = require('http');var querystring = require('querystring'); function displayForm(res) { str = ''; str..

Node.js 2016.11.30

[SoapUI] 로그인하여 얻은 토큰을 다음 요청 헤더에 적용하기

1. Test Step 등록 a. Login b. GetUser c. ModifyUser d. DelUser 2. Groovy Script 등록Login 요청의 응답에 토큰이 포함되어 있고, 이 토큰은 다음 모든 요청의 헤더에 포함되어야 한다.따라서 Login 이후에 Groovy Script를 추가한다. import groovy.json.JsonSlurper import com.eviware.soapui.impl.wsdl.teststeps.*import com.eviware.soapui.support.types.StringToStringsMap // PARSE TOKEN FROM RESPONSEdef resp = testRunner.testCase.getTestStepByName("Login").getP..

카테고리 없음 2016.10.07

Consul & Registrator

consul cluster 구성하기1. consul 설치$ wget https://releases.hashicorp.com/consul/0.7.0/consul_0.7.0_linux_amd64.zip$ unzip consul_0.7.0_linux_amd64.zip$ sudo cp consul /usr/local/bin 2. consul server 실행 (@instance1) * -bind에는 실행 중인 인스턴스의 IP를 적는다.$ consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -node=agent1 -bind=172.31.4.225 3. consul client 실행 (@instance2) * -bind에는 실행 중인 인스턴스의 IP를 적..

MicroService 2016.10.05

CoreOS fleet unit 작성 및 실행

fleet은 systemd를 클러스터 레벨에서 제어하는 클러스터 매니저입니다. 클러스터 내에서 서비스를 실행하기 위해서는 먼저 systemd unit을 submit 해야합니다.Unit file 작성Redis 컨테이너를 실행하는 Unit file을 작성합니다. 이 때 docker 명령문에서 -d 옵션을 사용하지 않도록 주의해야 합니다. -d 옵션으로 인해 컨테이너가 detached 되면 unit이 종료되기 때문입니다. /etc/systemd/system/redis@.service[Unit] Description=Redis After=docker.service Requires=docker.service [Service] TimeoutStartSec=0 ExecStartPre=-/usr/bin/docker k..

MicroService 2016.08.12