Windows의 AWS-CLI+nodejs 실행 환경 구축
목표
cli로aws환경과node를 조작할 수 있습니다.js에서 스크립트를 이동할 수 있는 환경을 구축했습니다.
그 기록이야.
환경
Windows 10/64bit
※ 32bit은 설치 프로그램을 교체하여 실행할 수도 있습니다.
선결 조건
나는 이쪽을 보면서 전진했다.
나는 이쪽을 보면서 전진했다.
구현 내용
aws-cli 배포
명령 프롬프트에서 AWS를 조작하는 aws-cli를 가져옵니다.
(이미지 참조 소스: https://github.com/donnemartin/dev-setup
설치 프로그램 가져오기
https://aws.amazon.com/jp/cli/
AWSCLI64.msi
※ 설치 절차 생략
프록시 설정
내부 환경 등에 에이전트가 있으면 명령 프롬프트에서 인증 에이전트를 설정합니다.
consoleset HTTP_PROXY=http://USERNAME:[email protected]:8080
set HTTPS_PROXY=http://USERNAME:[email protected]:8080
IAM 설정
AWS 콘솔에서 사용자 및 그룹을 만듭니다.여기에서 가져온 키를 원본 코드에 기록하거나 git로 올리지 마십시오.
IAM > 사용자 > 새 사용자 만들기
사용자를 만들고, 각 사용자에 대한 액세스 키 생성을 확인하고, 사용자의 액세스 키 정보(CSV 형식)를 저장합니다.
IAM > 그룹 > 새 그룹 만들기
그룹을 만들고 역할에 관리자 액세스 권한을 할당한 다음 방금 만든 사용자를 추가합니다.
aws-cli 초기 설정
버전을 확인합니다.
console>aws --version
aws-cli/1.10.36 Python/2.7.9 Windows/7 botocore/1.4.26
방금 다운로드한 CSV를 열고 "Access Key Id""Secret Access Key"열을 확인하고 aws-cli에서 인증 키를 설정합니다.
console>aws configure
AWS Access Key ID [none]:XXXXXXXXXXXXXXXXXXXX
AWS Secret Access Key [none]:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Default region name [none]:ap-northeast-1
Default output format [none]:json
※ 도쿄 지역을 선택했습니다.
※ output format에는 json, text, table
※ 여러 프로필을 사용하려면 매번 --profile USERNAME2 옵션을 추가하여 다른 사용자로 configure, 명령 실행
설정 확인
사용자의aws 폴더에 인증 정보가 저장되어 있기 때문에 먼저 확인하십시오.
console
>dir C:\users\USERNAME\.aws\
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は A0D4-4C61 です
C:\users\USERNAME\.aws のディレクトリ
2016/06/21 11:42 <DIR> .
2016/06/21 11:42 <DIR> ..
2016/08/12 16:31 51 config
2016/08/12 16:31 119 credentials
>type C:\users\USERNAME\.aws\config
[default]
region = ap-northeast-1
output = json
>type C:\users\USERNAME\.aws\credentials
[default]
aws_access_key_id = XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
명령 실행
실제 명령을 실행하고 인증 키가 올바르게 설정되었는지 확인하며 EC2의 보안 그룹 목록을 보여 줍니다.방금 설정한 바와 같이 json 형식으로 결과를 얻었다.
console>aws ec2 describe-security-groups
{
"SecurityGroups": [
{
(省略)
}
]
}
node.js 배포
https://nodejs.org/en/download/
node-v4.4.7-x64.msi
※ 설치 절차 생략
버전 확인
node와 npm 모두 있습니다.
console>npm -v
2.15.8
>node -v
v4.4.7
aws-sdk 설치
AWS의 Getting Started with the SDK in Node.js 페이지를 보면 npm 명령이 적혀 있기 때문에 그렇게 실행합니다.
console>npm install aws-sdk
[email protected] node_modules\aws-sdk
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected] ([email protected])
※ 현재 디렉토리의 node_modules 폴더에 sdk를 설치합니다.
예제 실행
이번에는 S3의 TESTBUCKET에서 일람표를 얻을 수 있는 스크립트를 만들고 실행해 보겠습니다.
lists3sample.jsvar AWS = require("aws-sdk");
AWS.config.region = 'ap-northeast-1'
var params = {
Bucket: 'TESTBUCKET'
};
var s3 = new AWS.S3();
s3.listObjects(params, function(err, data) {
if(err) console.log(err, err.stack);
else console.log(data);
});
Visual Studio 코드도 도입했습니다.
겸사겸사 말씀드리지만, 수첩에 json,node가 있습니다.저는 js를 쓰는 데 한계를 느꼈기 때문에 Visual Studio Code일를 설치했습니다.NETer는 사용하기 좋아요.
https://www.visualstudio.com/ja-jp/products/code-vs.aspx
VSCodeSetup-stable.exe
※ 설치 절차 생략
초기 설정
PROXY 설정도 필요합니다.VSCode의 설정 파일은 남성적인 json 형식이기 때문에 편집합니다.OS의 환경 변수에 추가 기록할 수 있을 것 같습니다.
파일 > 기본 설정 > 사용자 설정 편집 창 오른쪽
settings.json// 既定の設定を上書きするには、このファイル内に設定を挿入します
{
"http.proxy": "http://USERNAME:[email protected]:8080"
}
※ 편집한 후 VScode 다시 시작
확장 배포
VSCode Market Place를 통해 인기 있는 확장 기능을 확인할 수 있습니다.
https://marketplace.visualstudio.com/vscode/All%20categories?sortBy=Downloads
좋아하는 걸 넣으면 되는데 개인적으로 자바스크립트, json과 관련된 걸 넣고 싶어서 여기에 넣으려고 했어요.
set HTTP_PROXY=http://USERNAME:[email protected]:8080
set HTTPS_PROXY=http://USERNAME:[email protected]:8080
>aws --version
aws-cli/1.10.36 Python/2.7.9 Windows/7 botocore/1.4.26
>aws configure
AWS Access Key ID [none]:XXXXXXXXXXXXXXXXXXXX
AWS Secret Access Key [none]:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Default region name [none]:ap-northeast-1
Default output format [none]:json
>dir C:\users\USERNAME\.aws\
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は A0D4-4C61 です
C:\users\USERNAME\.aws のディレクトリ
2016/06/21 11:42 <DIR> .
2016/06/21 11:42 <DIR> ..
2016/08/12 16:31 51 config
2016/08/12 16:31 119 credentials
>type C:\users\USERNAME\.aws\config
[default]
region = ap-northeast-1
output = json
>type C:\users\USERNAME\.aws\credentials
[default]
aws_access_key_id = XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>aws ec2 describe-security-groups
{
"SecurityGroups": [
{
(省略)
}
]
}
>npm -v
2.15.8
>node -v
v4.4.7
>npm install aws-sdk
[email protected] node_modules\aws-sdk
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected] ([email protected])
var AWS = require("aws-sdk");
AWS.config.region = 'ap-northeast-1'
var params = {
Bucket: 'TESTBUCKET'
};
var s3 = new AWS.S3();
s3.listObjects(params, function(err, data) {
if(err) console.log(err, err.stack);
else console.log(data);
});
// 既定の設定を上書きするには、このファイル内に設定を挿入します
{
"http.proxy": "http://USERNAME:[email protected]:8080"
}
배포 방법
위의 링크가 아니라 Visual Studio Code를 열고 확장 기능의 태그에서 검색, 설치가 간단합니다.
열어봐
Visual Studio Code는 확장자에 따라 언어를 판정하므로js야.제이슨을 열어 보니 느낌이 좋다이.
(이상, 수고하셨습니다)
오류 세트 추가
Proxy 오류 잊음
awc-cli 키를 설정한 후 인증 에이전트를 설정하지 않은 상태에서 실행하는 중 오류가 발생했습니다.
consoleaws ec2 describe-security-groups
HTTPSConnectionPool(host='ec2.ap-northeast-1.amazonaws.com', port=443): Max retr
ies exceeded with url: / (Caused by ProxyError('Cannot connect to proxy.', error
('Tunnel connection failed: 403 Forbidden',)))
nodist 배포 실패
Windows의 node.js의 버전 관리는 일반적으로 nodist에 넣지만 내 환경에서 nodist 업데이트에 오류가 발생했고 npm installaws-sdk가 반응하지 않아 가져오기를 포기했습니다.
console>nodist -v
0.8.4
>nodist add 4.4.7
>nodist 4.4.7
4.4.7
>nodist ls
(x64)
> 4.4.7 (global: 4.4.7)
6.3.1
> nodist update
update
Installing undefined
C:\Program Files (x86)\Nodist\lib\nodist.js:89
var major = parseInt(version.split('.')[0])
^
TypeError: Cannot read property 'split' of undefined
at Function.nodist.isIojs (C:\Program Files (x86)\Nodist\lib\nodist.js:89:31)
at nodist.getSourceUrlPrefix (C:\Program Files (x86)\Nodist\lib\nodist.js:190:13)
at nodist.getUrlToExe (C:\Program Files (x86)\Nodist\lib\nodist.js:206:18)
at nodist.fetch (C:\Program Files (x86)\Nodist\lib\nodist.js:581:18)
at C:\Program Files (x86)\Nodist\lib\nodist.js:491:10
at C:\Program Files (x86)\Nodist\lib\nodist.js:416:7
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickCallback (internal/process/next_tick.js:98:9)
> npm install aws-sdk
(反応なし、インストールされない)
>node lists3sample.js
module.js:327
throw err;
^
Error: Cannot find module 'aws-sdk'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (D:\Dropbox\3-1-2_uploadobject.txt.js:1:73)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
참조 링크
보살핌을 받다
aws ec2 describe-security-groups
HTTPSConnectionPool(host='ec2.ap-northeast-1.amazonaws.com', port=443): Max retr
ies exceeded with url: / (Caused by ProxyError('Cannot connect to proxy.', error
('Tunnel connection failed: 403 Forbidden',)))
>nodist -v
0.8.4
>nodist add 4.4.7
>nodist 4.4.7
4.4.7
>nodist ls
(x64)
> 4.4.7 (global: 4.4.7)
6.3.1
> nodist update
update
Installing undefined
C:\Program Files (x86)\Nodist\lib\nodist.js:89
var major = parseInt(version.split('.')[0])
^
TypeError: Cannot read property 'split' of undefined
at Function.nodist.isIojs (C:\Program Files (x86)\Nodist\lib\nodist.js:89:31)
at nodist.getSourceUrlPrefix (C:\Program Files (x86)\Nodist\lib\nodist.js:190:13)
at nodist.getUrlToExe (C:\Program Files (x86)\Nodist\lib\nodist.js:206:18)
at nodist.fetch (C:\Program Files (x86)\Nodist\lib\nodist.js:581:18)
at C:\Program Files (x86)\Nodist\lib\nodist.js:491:10
at C:\Program Files (x86)\Nodist\lib\nodist.js:416:7
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickCallback (internal/process/next_tick.js:98:9)
> npm install aws-sdk
(反応なし、インストールされない)
>node lists3sample.js
module.js:327
throw err;
^
Error: Cannot find module 'aws-sdk'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (D:\Dropbox\3-1-2_uploadobject.txt.js:1:73)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
보살핌을 받다
현재 편집기로 사용되고 있으며, 디버깅을 사용하지 않기 때문에 나중에 기사를 쓸 수도 있습니다. ↩
Reference
이 문제에 관하여(Windows의 AWS-CLI+nodejs 실행 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/saitotak/items/bea534e28478ca8fe6e5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)