AWS CLIで情報を出力しようVPC編(Linux版-その3)

VPCにはどの様な情報があるのだろうか?。一番気になるのは,CIDR,サブネット,どのようにしたら見れるのだろうか?

             図A VPCの一覧を図で書いてみる

1.利用中のリージョンのVPC情報を出力しよう

利用中のVPC一覧を出力する場合は、以下のコマンドを実行します。

aws aws ec2 describe-vpcs

              図B VPC一覧出力

json形式で出力されます。

2.必要な情報のみ出力するようにしましょう

オプションのqueryを使用することで絞り込みができます。
以下の例は、CIDRとVPC名に絞った例です。トップレベルがVpcs,で(画像B 階層と項目)
CidrBlockとtags[0]をdict{}に配置させます。

aws ec2 describe-vpcs \
--query "Vpcs[].[{CIDR:CidrBlock,Name:Tags[0].Value}]" \
--out table

オプションのqueryを使用することで絞り込みができます。
–query オプションの順番を変えても出力順序は変わりません。CIDRが先に出力されます

aws ec2 describe-vpcs \
--query "Vpcs[].[{Name:Tags[0].Value,CIDR:CidrBlock}]" \
--out table

           図C 項目を絞って出力

VPCのCIDRとVPC名を出力できました。

3.必要な情報(追加)出力するようにしましょう

オプションのqueryを使用することで絞り込みができます。
以下の例は、CIDRとVPCIdにVPCの名前を追加した例です。トップレベルがSubnets,で
(画像D 階層と項目)CidrBlockとVpcIdをdict{}に配置させます。

aws ec2 describe-vpcs \
--query "Vpcs[].[{CIDR:CidrBlock,Name:Tags[0].Value,VpcId:VpcId}]" \
--out table

            図D CIDRとVPC名とVPCID

VPCのCIDRとVPC名とVPCIDを出力できました。

4.サブネット情報を出力してみましょう

VPCの情報出力では、サブネットの情報は出力されないので、サブネット情報
を出力するコマンドでサブネット情報を出力しましょう。

aws ec2 describe-subnets

             図E サブネット情報

サブネットの情報がjson形式で出力されます。

5.必要な情報のみ出力するようにしましょう

オプションのqueryを使用することで絞り込みができます。
以下の例は、CIDRとVPCIdに絞った例です。トップレベルがSubnets,で(画像E サブネット情報)
VPCid,CidrBlock,Nameを出力させます。

aws ec2 describe-subnets --query "Subnets[].[VpcId,CidrBlock,Tags[0].Value]" \
--out table

              図F サブネットのCIDRとVPCID

サブネットのCIDRとVPCIDが出力されます。

6.VPCとサブネットの情報を出力しよう

VPCの情報出力では、サブネットの情報は出力されないので、サブネット情報
を出力するコマンドとVPC-Idをfilterに指定してサブネット情報を出力しましょう。

aws ec2 describe-subnets \
--filters "Name=vpc-id,Values=vpc-0e628XXXXXXXXYYYY" \
--query "Subnets[].{CIDR:CidrBlock,VpcId:VpcId,Name:Tags[?Key=='Name'].Value}" \
--out table

         図G サブネットとVPCID

VPCIDをフィルターして、このVPCにどんなサブネットがあるのかがわかります。

7.VPC CIDRとサブネット CIDRを出力しよう

サブネットの情報(CIDR)とVPCのCIDRを出力したい。これにはちょっと工夫が必要です。
コマンド一発というわけにはいかないのです。他に方法があるかもしれません。

aws ec2 describe-subnets --query "sort_by(Subnets[].{VpcId:VpcId,SubnetCIDR:Cidr
Block,AZ:AvailabilityZone},&VpcId)" \
--out table > subnet.txt
aws ec2 describe-vpcs \
--query "Vpcs[].[{CIDR:CidrBlock,VpcId:VpcId}]" \
--out text > vpc.txt
./replace.py

more replace.py
#!/usr/bin/env python3
import textfile
list_from_vpcs = []
with open('vpc.txt') as f:
	reader = csv.reader(f, delimiter='\t')
	list_from_vpcs = [rows for rows in reader]
for vpc in list_from_vpcs:
	textfile.replace('subnet.txt',vpc[1],vpc[0])
textfile.replace('subnet.txt','VpcId','VpcCIDR')
            図H サブネットCIDRとVPCCIDR

先ず,サブネットの情報をサブネットのCIDRでソートしてsubnet.txtに出力させます。次に,vpc.txtにvpc情報を出力させます。そして、subnet.txtのファイルの中身を、vpc.txtのvpcIDと一致する項目をCIDRに置き換えています。また、表示名をVpcIdからVpcCIDRに変更しています。これで、サブネットとVPCの関係がわかります。

8.InternetGWの情報を出力しよう

InternetGWの情報を必要な項目のみ出力してみましょう

aws ec2 describe-internet-gateways \
--query "InternetGateways[].[{VPC_id:Attachments[0].VpcId,Name:Tags[0].Value}]" --out table

オプションのqueryを使用することで絞り込みができます。
上記の例は、InternetGatewaysがトップレベル次にVpcIdとTagsのValue情報を出力させています


            図J InternetGateway情報

次回はInternetGWとVPC,サブネットCIDRを一緒に出力させる方法を書きます


Linux版その1 EC2の情報出力 https://opt-p.co.jp/blog/aws/post-1633/

Linux版その2 RDSの情報出力 https://opt-p.co.jp/blog/aws/post-1718/

Linux版その4 色々な情報出力 https://opt-p.co.jp/blog/aws/post-2421/

【実践&検証】Sandboxの更新

はじめに

こんにちは!株式会社オプトプランニングです。
Salesforce(Salesforce.com/セールスフォース・ドットコム、略してSFDC)であれこれやってみたことを書いていきます。

先日、Sandboxの更新を初めて行いました。
その際、テスト用に作成していたレコードがSandbox更新後になくなってしまいました…(泣)

そこで今回はSandboxの更新について、更新前後でどのような変化が起こるのか、検証を交えてやってみようと思います。

今回やってみること

「Sandboxの更新」って何??

Sandboxの更新については、公式ヘルプで以下のように記載があります。

Sandbox を更新すると、ソース組織のメタデータが更新されます。Sandbox がコピーであるか、Sandbox で Sandbox テンプレートが使用されている場合は、更新プロセスにより、そのメタデータと組織のデータが更新されます。

Sandboxの更新

本番組織を元に作成したSandboxの更新については情報があったのですが、Sandboxを元に作成したSandbox(SandboxのコピーSandbox)の更新についてはあまり情報がなかったため、今回は後者について書いていきます。

SandboxのコピーSandboxの更新をやってみる

今回更新をやってみる環境は、以前作成したSandbox「T2Sandbox」です。(詳しくはこちらをご覧ください)
この「T2Sandbox」は、「TSandbox」というSandboxを元に作成したSandbox(コピーSandbox)です。

コピーSandboxを更新するとコピー元と比べて中のデータがどうなるのか、更新前後でSandboxにどんな変化があるのかを検証を交えて確認していきたいと思います。

イメージは以下の図になります。

図1 内容概要(イメージ)
図1 内容概要(イメージ)

検証用のデータ作成をやってみた

その1:カスタムオブジェクトの作成

Sandboxの更新をやってみる前に、更新前後で比較するための検証用データをコピー元のSandbox(TSandbox)とコピーSandbox(T2Sandbox)にそれぞれ作成していきます。

まず、TSandboxとT2Sandboxにそれぞれの以下のようなカスタムオブジェクトを作成しました。

Sandbox名カスタムオブジェクトの表示ラベルAPI参照名
TSandbox顧客カスタム(Tsandbox作成)Tsandbox__c
T2Sandbox関係者の同意カスタム(T2sandbox作成)T2sandbox__c
図2 TSandboxで作成したオブジェクト
図2 TSandboxで作成したオブジェクト
図3 T2Sandboxkで作成したオブジェクト
図3 T2Sandboxkで作成したオブジェクト

その2:レコードの作成

次に、レコードを作成します。
違いを分かりやすくするため、以下の標準オブジェクトにそれぞれ1つのレコードを作成しました。

レコード名などは画像を参照してください。

Sandbox名レコードを作成したオブジェクト
TSandboxリード
T2Sandbox取引先
図4 TSandboxのリード(レコードあり)
図4 TSandboxのリード(レコードあり)
図5 T2Sandboxのリード(レコードなし)
図5 T2Sandboxのリード(レコードなし)
図6 TSandboxの取引先(レコードなし)
図6 TSandboxの取引先(レコードなし)
図7 T2Sandboxの取引先(レコードあり)
図7 T2Sandboxの取引先(レコードあり)

Sandboxの更新方法と手順

まずは本番環境へ

Sandbox作成の時もそうでしたが、Sandboxの更新も本番環境からでしか行うことはできません。

本番環境へログインし、設定のクイック検索で「Sandbox」と入力し「環境」の配下にある「Sandbox」をクリックします。

さっそく更新

Sandboxの一覧が表示されたら、対象のSandboxの左にある「更新」をクリックします。

図8 Sandboxの一覧画面
図8 Sandboxの一覧画面

「更新」をクリックすると「Sandboxの更新」が表示されます。
(なんだか見覚えのあるような画面ですね~)

「Sandboxの情報」には既に「T2Sandbox」の情報が入っていましたが、変更することもできるようです。

また、「作成元」は「TSandbox」になっていますが、こちらも変更することができるようです。

今回は、更新前後の違いが分かるように「説明」に更新年月を追加し、名前や作成元はそのままで「次へ」をクリックします。(検証を行ったのは2022年6月でした)

図9 Sandboxの更新画面
図9 Sandboxの更新画面

次に表示されるのは「Sandboxオプション」でした。
こちらは空白のまま「作成」をクリックします。

図10 Sandboxオプション
図10 Sandboxオプション

後は待つだけ

「作成」をクリック後、Sandboxの一覧に戻ってきました。

先ほど更新を行った「T2Sandbox」の「状況」は「待機中」になっており、「説明」が変わっていることが確認できます。
また、「アクション」、「場所」、「完了日」は空白になりました。

更新元である「TSandbox」の方は「アクション」のうち「削除」と「更新」が消えました。

図11 Sandboxの一覧画面
図11 Sandboxの一覧画面

ここまできたらSandboxの作成の時と同じように更新が完了するのを待つだけのはずです!!

いつまで経っても更新が完了しない…

有効化待機中について

Sandboxの一覧画面を時々リロードして見ていたものの、いつまで経っても更新が完了しませんでした。(Sandbox作成の時はすんなりできた記憶があるので、おかしいなと思いつつ他の作業を行っていました。)

半日ほど経過し、流石に時間がかかりすぎでは?と思い、Sandbox一覧画面をよくよく確認してみると…

図12 有効化待機中で表示されるアクション「有効化」と「破棄」
図12 有効化待機中で表示されるアクション「有効化」と「破棄」

更新を行ったT2Sandboxの「状況」が「有効化待機中」になっており、「アクション」に「有効化」と「破棄」が追加されていました…!

そうです、Sandboxの更新では有効化ができるようになったら(状況が有効化待機中に変わった段階で)手動で「有効化」しなければならないのです!!
待つだけではダメでした…(泣)

このことはしっかり公式ヘルプにも載っていましたので気になる方は公式ヘルプも参考にしてください…

Sandbox の更新
更新された Sandbox の有効化

通常だと、有効化する準備ができるとSFDCからメールが送られてくるようです。(私の場合、システムメールを送信しない設定にしていたために気づくのが遅くなりました)

Sandboxの作成と更新は手順や画面が似ているので、気を付けましょう!

有効化する前に破棄を試してみた

気を取り直して、有効化を行おうと思ったのですが、その前に「破棄」をクリックするとどうなるかやってみました。

図13 ポップアップ「更新を破棄」
図13 ポップアップ「更新を破棄」

このようなポップアップが出現しました。

この後、「キャンセル」ボタンを押し、破棄は行いませんでしたが、「破棄」クリック後は確認のポップアップが出るのですぐに破棄されるわけではない、ということが分かりました。

更新の有効化をやってみた

いつも通り脱線してしまいましたが、更新の有効化をやってみます!
「有効化」をクリックすると…

図14 ポップアップ「有効化」
図14 ポップアップ「有効化」
図15 有効化ボタンがアクティブ状態
図15 有効化ボタンがアクティブ状態

破棄の時と同じようにポップアップが出現しました。

このままではポップアップ内の「有効化」ボタンがグレーアウトして押せないので、チェックボックスにチェックをつけます。

すると、「有効化」ボタンがアクティブになるのでクリックします。

図16 有効化中に変化
図16 有効化中に変化

「有効化待機中」から「有効化中」に状況が変化し、「アクション」は空白になりました。

あとは「完了」になるのを待つだけです!!

更新前後のSandboxの比較をやってみた

Sandbox自体の比較をしてみた

まず、更新前後で組織IDが変化し、インスタンス(場所)も変わります。

図17 更新前後のSandbox情報比較
図17 更新前後のSandbox情報比較

そして…先日必須となったMFA認証についてですが、設定は初期化されていました。
そのため、再度設定が必要です。

Sandboxの中身(データ)を比較してみた

冒頭で作成した検証用のデータについて、更新したSandbox(T2Sandbox)は更新前と比較してどうなったか見てみます。

まずは、カスタムオブジェクトを見てみます。

更新後のT2Sandboxを見てみると、更新前に作成したカスタムオブジェクトはなくなり、更新元のTSandboxで作成したカスタムオブジェクトだけありました。

図18 更新後のT2Sandboxのオブジェクトマネージャ
図18 更新後のT2Sandboxのオブジェクトマネージャ

次にレコードを見てみます。

こちらもカスタムオブジェクトと同様で、T2Sandboxで作成したレコードはなくなり、更新元のTSandboxで作成したレコードだけとなっていました。

図19 更新後の取引先
図19 更新後の取引先
図20 更新後のリード
図20 更新後のリード

比較からわかったこと

組織IDやインスタンスの場所、MFA認証も初期化されることから、Sandboxの更新は更新元のSandboxから新規でコピーSandboxを作成するのと変わりがないように思います。

更新時に「作成元」が変更できるのも、新規でSandboxを作成するのと変わらないからこそできるように思います。

データを見ても、Sandboxを作成した後に作ったカスタムオブジェクトやレコードは更新をすることで消滅してしまいます。

ここで注意したいのは、Sandbox上でなんらかの開発を行った後にSandboxの更新を計画する場合です。
更新を行うと更新元のSandboxと全く同じデータになるので、更新を行うSandbox上で新規作成したデータはすべて消えてしまいます。
Sandboxの更新について、更新元データを付け足してくれるイメージを持たないようにしましょう。

ではどんな時にSanedboxの更新を行うのがいいのか考えてみました。

  • Sandboxの作成上限に達しているが、不要なSandboxがあるため、新規でSandboxを作成したい
  • 複数のSandboxで同時に開発を行い、1つのSandboxに開発内容を集約した後、他のSandbox同士でも開発内容を共有したい

などが挙げられると思います。

一つ目の場合は、不要なSandboxを削除して作成を行うよりも、不要なSandboxを更新する方が手間が省けそうです。

二つ目の場合は、リリースを特定のSandboxのみに行うことで、相互にリリースしなくていいので変更セット作成とリリースの手間が減りそうです。
言葉だと分かりにくいかもしれませんが、イメージとしては以下です。

図21 複数のSandboxで同時に開発する場合
図21 複数のSandboxで同時に開発する場合

この場合、Sandbox①を本番環境へのリリース用とすれば、本番環境リリース後に開発用Sandboxを更新するとでそれぞれの開発用Sandboxは本番環境と同等の環境に揃えることができそうです。

開発用のSandboxはそれぞれ違った環境を元に作成していても、更新時に同じ環境を更新元(作成元)とすればいいだけです。

もちろん、それぞれの開発環境に独自にテストデータを用意していて、今後も継続して使用したい場合は、レコードの場合はデータローダなどでデータを保存しておいたり、オブジェクトの場合は更新元に作成しておいたりしなければなりません。

あとがき

ここまでやってみて、あまりSandboxの更新は需要がないような気がしてきましたが…
更新を行うとどうなるんだろう?と疑問に思われている方の参考になれば幸いです。

今後も、気になったことがあれば検証してみたいと思います。

それでは、またお会いしましょう!!

関連記事
SalesforceでSandboxを作ってみた(1)
SalesforceでSandboxを作ってみた(2)

社内 野の花画伯から その3

 ハイビスカスは、南国の花のイメージです。

花言葉は、「上品な美」、「新しい恋」、「繊細な美」、「恒久の美」等です。

沖縄などでは、生垣や庭木として親しまれています。花は、一日花で摘んでも暫くは枯れない生命力を持っているのでパワーがあります。花の鮮やかな色や情熱的な姿から「陽の木」が溢れていると言われ、人気運・愛情運・恋愛運を高めてくれるパワーがあるそうです。赤い花は、赤を象徴する火の気があり、火の気の方向としては、「南」を指します。この方向に飾っておくことで運気がアップするそうです。

ハワイ州では、州花にハイビスカスを指定しています。現地では、「神様に捧げる花」として多くの人々に愛されています。ハワイでフラダンスの踊り子達がハイビスカスを髪に挿して踊る姿が目に浮かびます。ハイビスカスを右に挿しているのは未婚者、左に挿しているのは既婚者という意味があるそうです。

Apexを使った簡単なメール送信方法

セールスフォース

 SFDCからメールを送信する方法は色々とありますが、今回はApexを使った簡単なメール送信方法を紹介します。

 Apexコードを使用するとApexトリガーやApexスケジューラからメールを送信することができます。
 Apexからメール送信する方法には「単一メール送信」と「一括メール送信」があります。今回は「単一メール送信」を使った方法を説明します。
 さらにメール本体についてはApexの中でメール本体を作成する方法と「メールテンプレート」を使う方法がありますが、ここではメール本体をApexの中で作成します。

1.メールアドレス保存用カスタムオブジェクトの作成

 メール送信先を登録するための以下のようなカスタムオブジェクト(MailMember)を作成します。

カスタムオブジェクト(メールメンバー)
図1 カスタムオブジェクト(MailMember)

2.Apexでのメール作成と送信

 Apexでメールを作成し、送信する部分のコードは以下となります。

List<String>mailAdderList = new List<String>();

String mailMsg = '連絡事項';

List<MailMember__c>mailMember = [select id,Name,mailAddress__c from MailMember__c];
for(MailMember__c mM:mailMember){
  mailAdderList.add(mM.mailAddress__c);
  mailMsg += '\n';
  mailMsg += nM.name;
}
mailMsg += '\n';
mailMsg += 'メッセージを入力';

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();

mail.setToAddresses(mailAdderList);
mail.setSubject('Test Mail Subject');
mail.setPlainTextBody(mailMessage);
mail.setUseSignature(false);
mail.setBccSender(false);
mail.setSenderDisplayName('メール送信者名入力');

List<Messaging.SendEmailResult> results = 
  Messaging.sendEmail(new List<Messaging.SingleEmailMessage>{mail},false);
for (Messaging.SendEmailResult result : results) {
    if (!result.isSuccess()) {
        System.debug(LoggingLevel.ERROR, result.getErrors()[0]);
    }
}

 コードの簡単な説明です。

 List<mailMember__c>mailMemberで送信先メールアドレスを保存します。

 new Messaging.SingleEmailMessage()により「単一メール送信」のインスタンスを作成します。

 mail.setToAddresses()にて送信先アドレスを設定します。設定できるアドレスは100件までです。

 mail.setSubject()にてメールサブジェクトを設定します。

 メール本体(メールのBody部)はmail.setPlainTextBody()にて作成します。

 メールの署名とBccは不要なので、setUseSignature()/setBccSender()にfalseを設定します。

 mail.setSenderDisplayName()でFrom行に表示される送信者表示名を設定します。   setOrgWideEmailAddressId()で組織の送信元のアドレスIDを設定した場合には設定できません。

 また、setOrgWideEmailAddressId()で添付ファイルをsetOrgWideEmailAddressId()で返信先メールアドレスを設定することができます。

 最後に、Messaging.sendEmail()でメールを送信します。2つ目の引数の指定は省略可能でデフォルトはtrueです。trueの場合、任意のsendEmailで失敗した場合、その他すべてのメッセージを送信しない、falseの場合は、メッセージを送信します。
 このメソッドはApex トランザクションごとに 10 回コールすることができます。

 Messaging.sendEmail()の結果はList<Messaging.SendEmailResult> resultsで受け取ることができます。配列で返却された結果に対してisSuccess()メソッドを実施することで結果を取得することができます。isSuccess()の結果がfalseの場合、getError()を使い、sendEmailErrorオブジェクトを取得することができます。エラーとなるのは送信時のエラーで、送信先に到達したか否かは関係ありません。

3.NO_MASS_MAIL_PERMISSIONエラー

 メール送信を実行した場合に「NO_MASS_MAIL_PERMISSION」というエラーが出る場合があります。これは「メールを送信するためのアクセス権」がない場合に発生します。設定により、権限を「すべてのメール」に変更します。

1.検索窓で「送信」を入力
2.メールメニューの「送信」を選択

図2 メールのアクセス権の設定(1)
【図2 メールのアクセス権の設定(1)】

3.アクセス権で「すべてのメール」を選択

図3 メールのアクセス権の設定(2)
【図3 メールのアクセス権の設定(2)】
【図4】メールのアクセス権の設定(3)
【図4】メールのアクセス権の設定(3)

社内 野の花画伯から その2

紫陽花。6月の梅雨にピッタリの花です。

万葉集にも詠まれている歴史の古い花。原産地は日本。
江戸~明治時代にヨーロッパに渡り、西洋アジサイとして
逆輸入されました。

従来は青系とピンク系が主流でしたが、現在は白のアジサイや
ピラミッド形のカシワバアジサイなどがあります。
ガクアジサイは額に囲まれているように見えるので、
ガクアジサイと呼ばれています。

Salesforce 認定アドミニストレーター受験記

はじめに

こんにちは!株式会社オプトプランニングです。

先日、Salesforceの認定アドミニストレーターをオンラインで受験し、無事に合格できました!!
Salesforceでは登竜門的な位置づけとなる認定アドミニストレーター資格ですが、合格までに様々な先輩方の受験体験記を読ませてもらいました。

そこで私も、どんな勉強を行ったか、オンライン受験のあれこれ、受験日までの準備や受験当日のことなどを書いていきたいと思います。

今から資格取得を目指すどなたかの参考になれば幸いです。

試験対策

勉強したこと

まずは、みなさんお馴染みのTrailheadを行いました。
私は実務でSalesforceを扱う機会があるので、今まで関わってこなかった分野や理解が曖昧な部分をTrailheadで勉強しました。

また、Salesforce主催の無料ウェビナーも参加しました。
半日かけて試験の出題範囲に沿って主要ポイントをなぞっていくので、とても勉強になりましたよ。
また、参加者に試験の割引クーポンの案内もあり、至れり尽くせりでした。(もちろん、今回の受験でありがたく使わせていただきました!!)

割引クーポンは有効期限が設定されており(私の時は3か月弱でした)、いつまでに受けよう!!と気持ちを奮い立たせてくれるので、試験を受けようか悩んでいる方こそ受講してほしいです。

あとは、ひたすら練習・模擬問題を解きました。
問題については有志の方々が作成し、ブログなどで公開して下さっているものを使わせていただきました。(有志の先輩方、本当にありがとうございます!!!)

個人的な感想ですが、問題文が独特なのでとにかく問題の出題形式に慣れておく必要があると思います。(これはどんな資格試験にも共通することかもしれませんが…)

勉強の流れ

具体的な流れとしては

問題を解く → わからない用語はメモ → 答え合わせ → わからない用語や正答率が低かった分野についてTrailheadがあればやってみるor見返してみる → Trailheadがなければ自力で調べる → 問題を解く・・・

を繰り返しました。
何度か上記の流れを行うと苦手分野が分かってくるので、苦手分野の問題を繰り返し解いて復習も行いました。

Salesforceは一度も触ったことがない…という方は、まずはTrailheadから始めてみて、大体わかってきたな、というタイミングで問題を解き始めるといいかもしれません。

試験予約と環境

試験予約のための準備

Trailheadをやってみた事がある方はTrailheadのアカウントをお持ちだと思いますが、それとは別に試験を受けるためWebassessor (ウェブアセッサー)へ登録する必要があり、Webassessorのアカウント取得後、試験の予約ができます。

オンライン試験について

オンライン試験は基本的に24時間受けることができます!!
(システムメンテナンスなどで受験不可日もあるので、詳細はSalesforce 認定資格をご覧ください。)
とてもありがたいですが、予約の時はうっかり受験時間を間違えないように気を付けて下さい…

時間は24時間とAM・PMの12時間の両方で表記されています。(2022年5月時点)
受験可能な時間が早い順で表示されるため、一番早い時間だと0:00(12:00AM)から選択できます。
例えばお昼の1時(13:00PM)に試験を受けるつもりが1:00(1:00AM)に試験予約をしてしまった…ということのないようにしましょう。(私はうっかり予約しかけました…)

試験日時選択画面
試験日時選択画面

オンライン試験の環境について

私はノートパソコンで受験しましたが、PC内蔵のカメラとマイクのみで問題なく受験できました。

オンライン受験ができる環境かチェックもできるので、そちらで調べるのが一番だと思います。
インターネット接続についても診断できるので、あらかじめ当日受験予定の回線(部屋)で診断しておくといいと思いますよ。

試験前日までの流れ

前日までにやっておくこと

まずは、オンライン受験ガイドをしっかり読んでおきましょう。

必ず行っておくこととして「Sentinel(センチネル)」のインストールと「Biometric(バイオメトリック)」の登録の2点があります。(受験ガイドにも記載があります)

方法は受験ガイドに詳細が記載されていますので割愛します。

試験当日の流れ

本人確認について(オンライン試験の場合)

試験会場では本人確認のため身分証明書が必要のようですが、オンライン受験ではバイオメトリックの認証システムで本人確認を行っているので身分証明書は必要ありませんでした。(2022年5月時点)

また、受験ガイド記載の「セキュリティに対する推奨」設定は、試験開始直前だと慌てそうだったので、当日に受験ガイドを確認しながら行いました。

試験開始直前

試験時間の10分前に試験開始ボタンが出現します。
私はオンライン受験ガイドをしっかり読んだつもりでしたが、どこに記載されているかわからず…

30分前からスタンバって、15分前になっても試験開始のボタンが現れなかったので、オンライン試験ガイドや動画を見返して10分前に試験開始ボタンが出現することに気が付きました…(笑)

試験準備などに気を取られて見落としがちかもしれませんので、今から受験する方は10分前に試験開始のボタンが現れると覚えておいて下さい!!

試験開始ボタンを押すと、試験の注意事項などの最終確認の画面に遷移します。

動画の案内もあるので、それを見つつ準備ができたらセンチネルの起動ボタン(だったかな?この辺りはうろ覚えです…)を押します。

センチネルが起動しない・・・

はい、試験開始ボタンを押した後、センチネルが起動しないエラーが発生しました…(泣)
エラー後、再度試験開始ボタンとセンチネル起動ボタンを押しますが、エラー連発で刻々と予約時間に近づき、メチャメチャ焦りました…(号泣)

5回ほど試してダメだったので、チャット経由でサポートに連絡しました!!!

カスタマーサポートセンターへ連絡してみる

私が行った連絡方法としては、まずWebassessorログイン画面にあるオンライン受験のチャット問い合わせの「こちら」をクリックします。

Webassessorログイン画面にあるチャットへのリンク
Webassessorログイン画面にあるチャットへのリンク

すると、KryterionのHPが開くので、右下のポップアップをクリックします。

リンク先のKryterionホームページ
リンク先のKryterionホームページ

氏名やメールアドレスの記入フォームが立ち上がるのでそれぞれ記入し、問い合わせ内容として正しそうなものを選び、下にある「チャットを開始」をクリックします。
(全て英語の選択肢でしたが、私の場合「Online Exam Technical Help」が妥当そうだったのでこれを選んだと思います…焦っていたのでここもうろ覚え。)

チャットの記入フォーム
チャットの記入フォーム

チャットが起動して少し経つと、オペレーターの方が英語で連絡をくれました。(日本語に訳すと「何にお困りですか?」みたいな感じだったと思います)
しかし、私はすでにチャット入力欄に「センチネルが起動せず試験ができない」と日本語で入力していました。
焦りすぎていたので、一旦そのまま日本語で送り、翻訳サイトで英語に直してチャットに入力し直そうとしていたところ…

なんと、返答が日本語で返ってきました!!!

翻訳したような日本語だったので、オペレーターの方が英語を日本語に翻訳して対応してくれたみたいです。
念のため、日本語でもいいですか?と聞いたら、大丈夫との返信がありました。
私と同じように何かトラブルに遭遇した方は、チャットで英語が送られてきても日本語で送ってみてもいいかもしれません。
焦りすぎていたので、この対応は本当に感謝しかありません。
対応してくれたオペレーターの方、あの時はありがとうございました…!

そんなこんなでエラー状況を詳しく説明すると、一度センチネルをアンインストールし、指定のファイルをインストール後、センチネルを再インストールするよう指示があり、、、

無事にセンチネルを起動することができました!!!!

サポートでのやり取りでおそらく20分ほど経過していたと思いますが、無事に受験することができました。

試験開始~終了まで(眼鏡の人の場合)

センチネル起動後、事前に登録したバイオメトリックの顔認証も済ませ、いよいよ試験開始です!

しかし、私は眼鏡をかけています。
眼鏡の場合は、チェックを行うと受験ガイドにありましたが、いつやるんだろうなぁ~なんて思いながら問題を解いていると・・・

急に眼鏡を確認する旨の画面に変わりました!!!

3~4問目の問題文に目を通しているところだったと思うので、時間にすると開始から5分少々経過したころでしょうか?
音声での案内はなく、切り替わった画面に「Glasses」の文字とカメラに眼鏡を近づけて見せるようなアニメーション(?)があったと思います。
(ここもうろ覚えですが、英語が得意ではない私にもすぐ眼鏡の確認だ!とわかりました。)

確認ができたら自動で試験再開すると思っていましたが、「試験に戻る」ボタン(うろ覚えです)があったので、確認ができたかの有無は無いと判断し、眼鏡を外してPCのカメラに近づけた後、前後左右に眼鏡を動かして止める、というのを5秒間隔で念のため2回繰り返し、「試験に戻る」を押して試験を再開させました。

試験時間は比較的余裕があったので、後から見直すためにチェックをしておいた問題の見直しをしてから全体を再度見直し、時間ギリギリまで粘りました。

試験終了!!

なんとか合格…!!

ギリギリまで問題を解き、試験終了のボタンをクリックすると、正答率と合否が記載された画面に切り替わりました。

初めての試験だったのですぐに結果が出てビックリしました!と言いたいところなのですが、試験に集中し疲れていたためすぐには状況を呑み込めなかったです(笑)

少したってから合格メールなどが送られてきてやっと実感することができました~

センチネルの起動エラーなどがあり試験の開始が予定より大幅に遅れたものの、試験時間が短くなったりはありませんでした。(試験中は時計は見れませんが残り時間が表示されており、開始した時に105分だったのを確認しています。)

また、私の場合試験中に眼鏡の確認がありましたが、その間は試験時間が表示されていなかったため試験時間に影響はなかったと思います。(当たり前ではありますが…)

あとがき

なんとか一度目の試験で合格することができてほっとしています。

振り返ってみると、トラブルに遭遇した方の受験記などを事前に読んでいたため、チャットでサポートに連絡する行動へ移れたと思います。
トラブルが起こっても一旦落ち着いて冷静に、と思っていてもなかなかそうはいかないものですね~

年内にもう一つSFDCに関する資格を取りたいな~と思っているので、受験の合否に関わらず勉強方法などを書いていけたらと思います。

それでは、またお会いしましょう!!

消防訓練実務研修レポート

こんにちは!株式会社オプトプランニング、安全衛生・健康推進委員です。
職場の安全管理の一環として受講した「消防訓練実務研修」のレポートをします。

場所は、広島市総合防災センターで行われました。
http://www.bousai-c.city.hiroshima.jp/index.htm

研修の内容は主に、
 1.防火管理について
 2.避難訓練について
 3.消防用設備について

でした。

実際の炎を前にしての消化訓練は、水用消火器ではなく、本物の消火器で消化を体験しました。
炎は、3~5メートル離れていても熱いです。緊張のせいか、消火器のピンが抜けずに焦りました。

そして、ホースでの水放出は、水の勢いに体がとられ、狙う位置に水が届きにくい。
消化は初期消火が大切とのこと。いざという時は、しっかり消さないといけません。

スプリンクラーの水量も見学しましたが、当然ですが水量が半端ないですね!

中でも、最も印象に残っているのは、煙の訓練でした。
照明のない暗闇で煙に巻かれると、本当に何も見えませんし、閉じ込められてパニックです。


こういう時に働く『正常性のバイアス』という心理は、
「自分にとって不都合なものを過小評価する傾向がある」
ことだそうです。

また、火災パニックの習性として、
 ・日常導線指向性:日常使いなれた通路を使う傾向
 ・帰巣性:入ってきた経路を戻ろうとする傾向
 ・向光性:暗闇で明るい方へ向かう傾向
 ・危険回避性:目前の危機のみを回避しようとする傾向
 ・追従性:多くの人が逃げる方向へ追従して逃げる傾向
があるとのこと。


自分は大丈夫と思っていても、いざという時は冷静さを保てるか。
日頃の訓練が重要と痛感しました。
「知っている」と「実際出来る」とでは、大きな違いがある、と講師の方も説明されていました。

今回受講させていただいた講座で、火災での危機管理、防災意識を高めることができました。
日頃から、全社で共有しておきたいと感じました!

社内 野の花画伯から

あなたは、どの花が好きですか?

初めて、花ではなく魚を描きました。

漢字「目張」と書き、飛び出しそうな大きな目が特長です。


黒メバルは、瀬戸内海「春告げ魚」の一つです。絵に加えて
‟人生限りなく楽し”の文字を追加しています。

どんなつらいことがあっても、何でもあきらめたらいかん。
いつかきっと春が来るぞ、という気持ちで描きました。

変更セットの上手な使いまわし術

気づき

はじめに

こんにちは!株式会社オプトプランニングです。

先日リリースについて書きましたが、その際書けなかったクローズ後の変更セットの私なりの使い方を忘備録も兼ねて書いていきたいと思います。

クローズした変更セットの利用方法その1

同じ変更セットを使いまわす

まずは、変更セットの再利用です。

  • 同じ変更セットを複数の組織にリリースする必要がある
  • 本番組織をベースに作成したSandbox環境でリリースの評価・テストを行い、問題なかったので同じ内容の変更セットを本番環境にリリースしたい

など、同一内容の変更セットを別組織にリリースしたい場面はあると思います。

クローズした変更セットは編集はできなくなりますが「アップロード」ボタンは残っています。
これを利用し、クローズした変更セットを別環境にアップロード・リリースすること(再利用)ができます。
(※クローズした変更セットに含まれるコンポーネントは、変更セット作成後に削除や修正をしていない場合に限ります。詳しくは後ほど説明します。)

アップロードする際、対象組織に対してリリース接続の設定を行うことが必要ですので、そこは忘れずに行いましょう。

1つの変更セットを再利用する良い点は、「変更セットアップロード履歴」が残ることです。
アップロードする度に残るので、後からどの組織にアップロードしたかの確認ができます。

図1 2つの組織にアップロードした後の変更セットアップロード履歴
図1 2つの組織にアップロードした後の変更セットアップロード履歴

Trailheadでは

送信変更セットを別の組織にアップロードした後で、異なる組織にアップロードすることはできません。

インテグレーション環境でのテストと変更のリリースhttps://trailhead.salesforce.com/ja/content/learn/modules/declarative-change-set-development/test-in-the-integration-environment-and-deploy-changes

とありますが、Developer SandboxからDeveloper Sandboxまたは本番組織に向けてのアップロードはできることを確認しています。

Sandboxの種類が違う場合などは検証しておりませんので、うまくいかない場合はTrailheadにあるように変更セットのコピーを行ってください。

クローズ後の変更セットのアップロード方法

変更セットのアップロードボタンは、送信変更セットの一覧や変更セットの詳細にあります。

図2 送信変更セット一覧画面
図3 送信変更セットの詳細画面
図3 送信変更セットの詳細画面

クローズ後の変更セットをアップロードしようとすると図5のような画面になります。
変更セットをどの環境にもアップロードしていない図4の時と比べてみると、

この変更セットをアップロードすると、編集できなくなり、対象組織から取り消すこともできません。

というメッセージがクローズした変更セットに表示されていないことがわかります。

既にクローズしている変更セットはそもそも編集することができないため、注意書きが現れないようです。

図4 オープンの変更セットアップロード時のアップロード詳細
図4 オープンの変更セットアップロード時のアップロード詳細
図5 クローズの変更セットアップロード時のアップロード詳細

使いまわす時の注意点その1

1つ目に注意したいのは、すでにアップロードした組織も選択できる点です。

同じ変更セットを複数回にわたって同一環境にアップロードしても特に問題は起きません。
逆を言えば、エラーも出ないということです。

アップロードは成功したのにアップロードしたはずの環境(対象組織)に受信変更セットがみつからない…?という時はアップロード先に間違いがないか確認しましょう。

アップロード先は、変更セットアップロード履歴やアップロード完了の通知メールで確認できます。
アップロード完了の通知メールには、送信変更セットのソース組織と対象組織が明記されています。

参考までに、「リリースしてみた<アップロード編>」で載せなかったアップロード完了の通知メールはこんな感じです。
システムメールとしてSalesforceから送られてきます。

図6 アップロード完了のシステムメール
図6 アップロード完了のシステムメール

使いまわす時の注意点その2

2つ目の注意点としては、1度にアップロードできる対象組織は1つだけという点です。
アップロード先を選択する画面はラジオボタンで構成されており、複数の組織を選択することは不可能となっています。

図7 アップロード時の対象組織の選択画面
図7 アップロード時の対象組織の選択画面

複数の組織に同じ変更セットをアップロードしたい場合はそれぞれアップロード手順を行う必要があります。

使いまわす時の注意点その3

3つ目の注意点としては、クローズした変更セットに含まれるコンポーネントは更新されないという点です。

例えば、前回のリリースしてみた<変更セット作成編>で追加した権限セット「MFA」について、変更セットアップロード後に修正を加えたとします。
アップロード後の変更セット(クローズした変更セット)はコンポーネントの更新が行われないので、権限セット「MFA」に行ったは反映されません。

変更セットに変更はないが、変更セットのコンポーネントの内容に変更がある場合は、「変更セットのコピー」を作成しないと修正内容を反映することはできません。

コンポーネントの更新という考え方が少し難しく感じますね…

図8 送信変更セット詳細に書かれている内容
図8 送信変更セット詳細に書かれている内容

クローズした変更セットの利用方法その2

変更セットのコピーを作成し編集する

クローズした変更セットは編集することはできませんが、コピーを作成することは可能です。
また、作成したコピーに対しては変更セットの編集ができます!!

このことを利用し、クローズした変更セットを編集したい時はコピーを作成するといいと思います。

  • リリースでコンポーネント不備によるエラーが出た
  • リリースでエラーも無く一安心した後に、リリース環境の確認を行っていて入れそびれたコンポーネントがあることに気づいてしまった

などなど、変更セットの作り直しが発生してしまうのはよくあることだと思います。(きっと私だけじゃない…はず 笑)

リリースしそびれたコンポーネントだけの変更セットを新しく作成してもいいのですが、

  • エラーやコンポーネント不足の度に変更セットを作成すると、沢山の変更セットが作られてしまう
    →どんな内容の変更セットをアップロード(リリース)したか履歴を確認する可能性があるため、リリース内容をなるべく1つの変更セットにまとめておきたかった
  • 「連動関係を参照/追加」を使用することで、変更セットに含めたい関連するコンポーネントが探し出しやすい

といった理由から、変更セットのコピーを作成しコンポーネントを追加(削除)する、ということを行いました。

変更セットのコピーの作り方

変更セットのコピーはとても簡単に作成できます。
対象の変更セットの「コピー」をクリックするだけです。

アップロードと同様、「コピー」は、送信変更セットの一覧や変更セットの詳細にあります。

図9 送信変更セット一覧画面
図10 送信変更セットの詳細画面
図10 送信変更セットの詳細画面

コピーをクリックすると、「変更セットのコピー」に遷移し、ここで変更セットの名前や説明を変えることができます。

ベースの変更セットと混同しないためにも、名前や説明はコピーであることが分かりやすいものに変更しておいた方がいいと思います。

図11ではすでに名前や説明を変更してありますが、「変更セットのコピー」の名前と説明にはデフォルトでベースの変更セットと同じ内容がそれぞれ入力されています。

図11 変更セットのコピー作成時の入力画面
図11 変更セットのコピー作成時の入力画面

変更セットのコピーを保存すると、ベースの変更セットのコンポーネントを引き継いだ「状況」がオープンの変更セットが出来上がります。

あとは、新規作成の時と同様にコンポーネントの追加を行ったり、不要なコンポーネントの削除を行いましょう。

あとがき

変更セットのコンポーネントの種類は、作成したことがある方ならわかると思いますがとても沢山あります。
以前どのぐらいあるか調べた時は約120種類ありました。(2021年12月ぐらいに調べました)

中には見たことのないコンポーネント種類名もあったりしたので、変更セットの作成は本当に大変な作業だと思います。

今回は、クローズ後の変更セットに焦点を当てて使い道について書いてみました。
クローズ後に限らず、良い使い道を思いついたら第二弾としてまとめられればと思います。

それでは、またお会いしましょう!!

関連記事
リリースしてみた<変更セット作成編>
リリースしてみた<アップロード編>

体に『美味しい』スイーツ作りに挑戦!

こんにちは!株式会社オプトプランニングの健康推進委員です。

当社でのいろいろな健康経営の取り組みに刺激され、健康的なスイーツ作りに挑戦しました。
以前から料理は好きで、中でも特にスイーツは食べるもの、作るもの大好です。
家にある残りもので、何かできないかな・・と考え、作るのにはまっております。


今回は、お安くなっていた「麦芽コーヒー豆乳」が冷蔵庫に残っていたので、
『コーヒー豆乳ババロア』を作ってみました。

使用したのは市販の麦芽コーヒー豆乳(もちろんカロリー50%OFF)と豆乳入りホイップクリーム、後はゼラチンと卵黄、グラニュー糖です。

作り方は普通のババロアと同じです。
今回はアレンジでチョコレートソースをのせて作ってみました。
お味は・・なかなか美味しくできたと思います(自画自賛)!

豆乳に含まれる栄養素と言えば、代表的な大豆イソフラボンをはじめ、たんぱく質、サポニンに
ビタミンEなど健康に良いものがいっぱい!
飲むのには、少しくせがありますが、このようにスイーツにすると美味しく食べられます。

ざっくり栄養計算していみると・・1個当り約160Kcal・・
一日のうち間食にあてることができるカロリーは200Kcal。
できればもう少しカロリーを落としたいですね。
チョコレートソースのカロリーが高いので、コーヒーソースにしたり、使用する砂糖を
ノンカロリーの砂糖にしたり、まだまだ試行錯誤の余地はありそうです。

目標のカロリーは120Kcal。美味しさはそのままで体に健康的なスイーツに
なるようにもう少し試作してみます。
納得のいくレシピができたら、ぜひ皆さんにも紹介したいと思います!