dotnet 6.0 macOS DynamoDBテーブル Describe取得

dotnet 6.0 macOS DynamoDBテーブル Describe取得

.NET6 C#を使って、 DynamoDB テーブルの詳細情報を取得します。

dotnet new console の後、 nugetからAWSSDK.DynamoDBv2パッケージをAddします。

dotnet add package AWSSDK.DynamoDBv2 --version 3.7.3.26

パッケージ内のDescribeTableAsync()を使えば、 テーブルの詳細情報を取り出せます。

DynamoDB上に「test-table」テーブルを作成

DynamoDB テーブル作成

パーティションキー = partition-num
ソートキー = sort-moji

このDynamoDBで作成したテーブルの詳細情報を.NET6 C#を使って取り出します

using Amazon;
using Amazon.DynamoDBv2;

var dynamodb = new AmazonDynamoDBClient("アクセスキー","シークレット", RegionEndpoint.APNortheast1);
try{
    var describeTask = dynamodb.DescribeTableAsync("test-table");
    var describe = describeTask.Result;
    Console.WriteLine("テーブルARN={0}",describe.Table.TableArn);
    foreach (var att in describe.Table.AttributeDefinitions){
        Console.WriteLine("AttributeDefinition KeyName={0} Type={1}",att.AttributeName,att.AttributeType.Value);            
    }
    Console.WriteLine("テーブル作成日={0}", describe.Table.CreationDateTime.ToString());
    Console.WriteLine("総レコード={0}", describe.Table.ItemCount);
    Console.WriteLine("TableSizeBytes={0}", describe.Table.TableSizeBytes);
} catch(Exception _e){
    Console.WriteLine(_e);
}

実行結果

テーブルの、 作成日・総レコード数・テーブルの サイズなども取得できています

dotnet 6.0 HttpClientでCache-Control: no-cache

dotnet 6.0 HttpClientでCache-Control: no-cache

dotnet 6.0の、 HttpClientで「Cache-Control: no-cache」を使う方法

HttpClientの DefaultRequestHeaders.CacheControlを 使います。

using System.Net.Http.Headers;

string url = "https://mjeld.com";
var httpc = new HttpClient();
httpc.DefaultRequestHeaders.CacheControl = new CacheControlHeaderValue {
    NoCache = true, NoStore = true, MaxAge = new TimeSpan(0,0,30)
};
var aRes = httpc.GetAsync(url);
var bRes = aRes.Result.Content.ReadAsStringAsync();
string content1 = bRes.Result;
Console.WriteLine(content1);

Cache-Control: no-store, no-cache, max-age=30

上記の結果でした。

no-cacheだけ必要な場合は、 下記のように NoStoreとMaxAgeを外します。

httpc.DefaultRequestHeaders.CacheControl = new CacheControlHeaderValue {
    NoCache = true
};

dotnet macOS 古いSDKを削除する

dotnet --list-runtimes

macOSにインストールした dotnet(.NET) SDKの古いバージョンを削除する

インストールされているdotnet SDKバージョン一覧を確認する

dotnet --list-sdks
dotnet –list-sdks 実行

/usr/local/share/dotnet/sdk ここに、 SDK各バージョンの 実態が入っています

ls -l /usr/local/share/dotnet/sdk/

lsで 確認してみると 各バージョンが入っています↓

ls 結果

先頭にある「2.1.403」を消してみる

sudo rm -rf /usr/local/share/dotnet/sdk/2.1.403

再度「 dotnet –list-sdks 」で 確認すると 2.1.403 は消えていた

sdk以外にも 「 /usr/local/share/dotnet/shared 」

Microsoft.AspNetCore.All 
Microsoft.AspNetCore.App 
Microsoft.NETCore.App

上記の各バージョンのディレクトリも消す

「 /usr/local/share/dotnet/host/fxr 」ここの バージョンのディレクトリも消す。

Microsoft のドキュメントに書いてある .NET ランタイムと SDK を削除する方法 を参考に アンインストールシェルを作成する

#!/bin/bash
version="2.1.403"
sudo rm -rf /usr/local/share/dotnet/sdk/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.NETCore.App/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/$version
sudo rm -rf /usr/local/share/dotnet/host/fxr/$version

dotnet ランタイムを確認

dotnet --list-runtimes