dax(Deno) を最近よく使っているのでメモ
Deno はnpmのモジュールを使えるので、aws-sdk-jsを普通にインポートすればよい。
Docker loginする
AWS SDK for JavaScript v3 でassume-roleで各リソースにアクセスするクライアントを作る でクライアントを作ってECRのcredentialを取得する
export async function loginDocker(ecrClient: ecr.ECRClient) {
const authorizationResponse = await ecrClient.send(
new ecr.GetAuthorizationTokenCommand({}),
);
if (authorizationResponse.authorizationData == null) {
return;
}
const authToken =
authorizationResponse.authorizationData[0].authorizationToken;
if (authToken == null) {
return;
}
const textDecoder = new TextDecoder();
const password =
textDecoder.decode(base64.decodeBase64(authToken)).split(":")[1];
await $`docker login --username AWS --password ${password} ${AWS_ACCOUNT}.dkr.ecr.ap-northeast-1.amazonaws.com`;
}