APIからRealmを追加
Env Keycloak: 11.0.3
Get token
def get_token(): url = f"{BASE_URL}/auth/realms/master/protocol/openid-connect/token" realm = "your-realm" username = "your-admin-user-name" password = "your-admin-password" client_id = "client-id" payload=f'client_secret={realm}&username={username}&password={password}&grant_type=password&client_id={client_id}' headers = { 'Content-Type': 'application/x-www-form-urlencoded' } response = requests.request("POST", url, headers=headers, data=payload) return response.json()['access_token']
Create realm
def create_new_realm(id, realm, token): payload = { "id": id, "realm" : realm, "enabled" : True } url = f"{BASE_URL}/auth/admin/realms" headers = { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' } print(payload) response = requests.request("POST", url, headers=headers, data= json.dumps( payload)) print(response)
Quarkusを0.0.0.0にバインドする
引数に以下を追加
-Dquarkus.http.host=0.0.0.0
wslを終了する
list表示
C:\Users\mo378>wsl --list Linux 用 Windows サブシステム ディストリビューション: Ubuntu-20.04 (既定) Ubuntu-18.04 Debian
終了
wsl -t Ubuntu-20.04
WSL2にIntellijをインストールする
WSL2にIntellijをインストールする Ubuntu20.04をインストールし、WSL2にしておく
sudo apt update
X windowをインストール
sudo apt install xfce4
(LightDMを選択)
windows にVcXSrvをインストール VcXSrvの設定は以下を参考
.bashrcに以下を追記
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
bashrcを再読み込み
source ~/.bashrc
JetBrains tool boxをDL
インストール
sudo tar -xzf jetbrains-toolbox-*.tar.gz -C /usr/local/bin --strip-components 1
toolboxを起動
jetbrains-toolbox
azreu storage V12を使う方法
const { BlobServiceClient } = require('@azure/storage-blob'); const ConnectionString = ""; async function main() { console.log('Azure Blob storage v12 - JavaScript quickstart sample'); // Quick start code goes here const list = await listBlobs("blob-name"); list.forEach(element => { console.log(element); }); } async function download(containerName: string, blobName: string) { const blobServiceClient = BlobServiceClient.fromConnectionString(ConnectionString); const containerClient = blobServiceClient.getContainerClient(containerName); const blockBlobClient = containerClient.getBlockBlobClient(blobName); const blobDownloadResponse = await blockBlobClient.download(0); return blobDownloadResponse.readableStreamBody; } async function upload(containerName: string, blobName: string, data: string) { const blobServiceClient = BlobServiceClient.fromConnectionString(ConnectionString); const containerClient = blobServiceClient.getContainerClient(containerName); const blockBlobClient = containerClient.getBlockBlobClient(blobName); const uploadBlobResponse = await blockBlobClient.upload(data, data.length); return uploadBlobResponse.requestId; } async function createContainers(containerName: string) { const blobServiceClient = BlobServiceClient.fromConnectionString(ConnectionString); const containerClient = blobServiceClient.getContainerClient(containerName); try { const createContainersResponse = await containerClient.create(); return createContainersResponse.requestId; } catch (e) { console.log(e); } } async function deleteContainers(containerName: string) { const blobServiceClient = BlobServiceClient.fromConnectionString(ConnectionString); const containerClient = blobServiceClient.getContainerClient(containerName); return await containerClient.delete(); } async function listBlobs(containerName: string) { const blobServiceClient = BlobServiceClient.fromConnectionString(ConnectionString); const containerClient = blobServiceClient.getContainerClient(containerName); const blobs = []; for await (const blob of containerClient.listBlobsFlat()) { blobs.push(blob.name); } return blobs; } async function doesContainerExist(containerName: string) { const blobServiceClient = BlobServiceClient.fromConnectionString(ConnectionString); const containerClient = blobServiceClient.getContainerClient(containerName); return containerClient.exists(); } main().then(() => console.log('Done')).catch((ex) => console.log(ex.message));
Azure storage tableから1000件以上のデータを取得する方法
queryEntitiesは最大1000件までしか取得できない。 continuationTokeを使うことで1000件以上のデータを取得することができる
exports.getDataFromStorageServiceAsync = async function getAllFromTable(key) { let account = ""; let access_key = ""; var tableService = azure.createTableService(account, access_key); var query = new azure.TableQuery() .where('PartitionKey eq ?', key); var continuationToken = null; var entities = []; do { var results = await queryEntitiesSegmented(process.env["TABLE_NAME"], tableService, query, continuationToken); continuationToken = results.continuationToken; entities.push.apply(entities, results.entries); } while (continuationToken != null); return entities; } const queryEntitiesSegmented = async (table, tableService, tableQuery, continuationToken) => { return new Promise((resolve, reject) => { tableService.queryEntities(table, tableQuery, continuationToken, (error, results) => { if (error) { reject(error); } else { resolve(results); } }); }); }