Microsoftサポートじゃ教えてくれない!Outlookの小ネタ紹介
こんにちは。Colorkrewで情シスを担当しているNabeです。 皆さんが普段何気なく使用している「Microsoft Outlook」、実は「Microsoft Power Automate」等と組み合わせることで、利便性が増すことをご存じでしょうか。 今回はそんなOutlook小ネタを1つご紹介します。 ※本内容は、Microsoft PowerAutomate を触ったことがある方向けになります※ 定例MTG自動招待 皆さんの企業でも、定期的に実施しているMTGいわゆる「定例MTG」があると思います。 Outlookでは、あるグループにユーザーを追加した際、グループに対して設定した定期スケジュールは反映されない仕様になっています。 その際、新しく入社した社員に手作業で招待していくのは面倒ではありませんか? 何と、Microsoft PowerAutomateを使用すれば、簡単に解決します。 自動招待のおおまかな流れ 新入社員のMicrosoftアカウントを特定のグループに追加 グループ追加をトリガーに、Microsoft PowerAutomateのフローを稼働 新入社員のOutlook予定表に、定例MTGが自動追加 準備するもの PowerAutomate が使用できるアカウント 本作業を実施するにあたり、必要なものはズバリ「PowerAutomate が使用できるアカウント」に対して、「Microsoft Entra ID管理の権限」と「新人社員のOutlookデータを変更できる権限」が付与されていることです。 これがないと、そもそもPowerAutomate でのフロー構築ができないため、本作業が実施できません。 定例MTG反映元のアカウント PowerAutomate 上でフローを実行する際に、Outlookカレンダーを取得する作業が走ります。 Outlookカレンダー取得元となる「Outlookが使用可能なMicrosoftアカウント」が必要となります。 また、当該アカウントを、特定グループ(後述のPowerAutomateの構成「トリガー」部分参照)に所属させておいてください。 また、定期的なメンテナンスも考慮して、Outlookカレンダー取得元アカウントは、情シスが管理できるアカウントにするのがおススメです。 PowerAutomate の構成 では、実際にどういう構成でPowerAutomate を構築しているか見てみましょう。 図で表すとこんな感じです。 この構成は、前項の「準備するもの」で紹介した、「PowerAutomateが使用できるアカウント」で基本的に作成をお願いします。 トリガー(新入社員を特定のグループに追加) PowerAutomateを作動させるトリガーを作成します。正直ポイントを押さえていれば、どんなトリガーでも構いません。 私は、「新入社員のMicrosoftアカウントを、特定のグループに追加させる」ことをトリガーとしています。 ここで考えるべきポイントは、「新入社員のメールアドレス値を取得できる状態にしておく」ことです。 フロー内の後続作業で、新入社員のメールアドレス値を取得するため、トリガー作業時に新入社員を特定できるような構成にしておくのがおススメです! 新入社員のメールアドレスを取得 前作業にも記載しましたが、ここで新入社員のメールアドレスを取得します。 新入社員の予定表プロパティを取得 さて、ここが一番の問題です。...AWS Lambda and S3 Just Got Smarter: How AWS Prevents Recursive Loops Automatically
We all love serverless especially when it comes to AWS LAMBDA functions. There are good reasons to do so for event-driven, decoupling, automation and many other reasons that time aws lambda was released. But there can be situations when our dear friend LAMBDA can turn in to a foe and cost us money, downtime and those times are unintentional recursive Loops....Say Goodbye to Extra CodeBuild Projects: AWS CodePipeline’s New Commands Action Explained
Until Now, if you wanted to run AWS CLI commands, third-party CLI commands, or simply invoke an API, you had to create a CodeBuild project, configure the project with the appropriate commands, and add a CodeBuild action to your pipeline to run the project. Clearly Users had to deal with 2 components CodePipeline and CodeBuild and of course learn the internals for both in order to use the....Bloom Filter 101
What data structure would you use to determine whether an entity is in a given dataset with speed? Many would answer “Hashtable” without hesitation. Hashtable performs well when accessing an entity among a group of entities: the average time complexity of its read operations is constant. Nevertheless, using Hashtables can be rather costly when dealing with large datasets....2024年版 Colorkrew 自社サービスのインフラ業務の現状
こんにちは。Azure Cloud Solution Architect 兼 DevOps Engineer の秋山です。 自社サービスのインフラリードを担当しています。 前回書いたブログが2年前になってしまいましたので、ここで最近のインフラの状況についてまとめてみます。 自社サービス Mamoru Biz で AKS 導入1周年で振り返る プロダクト開発チームの増加に伴う効率化 最も大きい変化はこれです。 2年前は自社サービスイコール Mamoru Biz(現在の Colorkrew Biz) でしたが、現在は「Colorkrew ID」「Colorkrew Intra」「AI Chatシステム」や開発中のプロダクトなど多岐にわたります。 いずれの製品もクラウドインフラを活用しているため、新しいシステムのインフラ構築を効率的に行う必要があります。 自社サービスのインフラチームは私を含めて現在4人、全員受託案件など他の業務と兼任しています。 直近の1,2年ではおおまかに以下の内容を進めることで、インフラ業務が滞らない状況を作り上げてきました。 プロダクト開発チームからの依頼テンプレート化 インフラ・デプロイコードのモジュール化 最新技術のトライアンドエラーとフィードバック 本エントリではこれらを順に説明します。 プロダクト開発チームからの依頼テンプレート化 弊社ではソースコード管理に GitHub を利用しています。 新しいプロダクトの開発が始まるタイミングや既存プロダクトで新たなクラウドインフラが必要になったときに、GitHub Issue に内容をインフラチームが自身でまとめるようにしました。 そしてそれが大体パターン化されてきたため、 Issue テンプレートを用意して、プロダクト開発チームに記載してもらうようにしました。 ref: リポジトリ用に Issue テンプレートを設定する 内容は以下です 必要なクラウドインフラリソース(DB, Storage, …etc) Kubernetes リソース(Pod, CronJob, …etc) デプロイフロー 環境別の期日(Debug は ASAP, Prod は2か月後, …etc) チャットのラリーで必要な情報を埋めていくのは非効率なため、一度で大半の情報を網羅できるのは効率的です。 また、プロダクト開発チームは別のプロダクトのインフラ依頼内容を参考にすることで、サイロ化を防ぎ横のつながりや理解にもわずかながらつながるという副次的な効果も見えています。...A Brief Introduction to Pagination
For many software engineers, endpoints for retrieving a list of entities are probably their favorite to implement–all they need to do is build an SQL statement that grabs all the available items, along with some other minor tasks. It’s all fun and games until the number of entities in the database becomes a bottleneck, where each GET request returns tens of thousands of items....A More Elegant Alternative to Golang's Error-Handling
Recently, I joined a new project at Colorkrew that uses Golang as its backend language. Almost everyone on the team, including myself, had no experience with Golang, so we had to start from zero. Learning Golang has been a rewarding experience so far. After all, it is one of the most in demand programming languages now....Separation of Concerns: Split Your React Components into Containers and Views
Many frontend engineers probably have experienced the head-scratching moment when their React components become so gigantic that they keep losing their train of thought when navigating through their frontend code. To salvage readability, one of the most common practices is to split up the humongous React components into smaller pieces. Traditionally, they would do this by chopping up the JSX elements....RESTful API 101
It is almost impossible for a backend engineer to be oblivious to RESTful API in the 21st century, as it is one of the most popular API types. We can mostly attribute its popularity to its scalability, flexibility, and simplicity, all of which are highly sought-after qualities in modern APIs. If you also find these qualities desirable, you should consider building APIs following the RESTful principles....Introduction to Functional Programming
The first programming paradigm that most programmers in the 21st century learn is probably Object Oriented Programming (or OOP for short). Object Oriented Programming allows us to transform real-world entities into highly abstract models with descriptive properties and executable methods to simulate their behaviors in the real world. Despite its numerous advantages, such as readability, reusability, and maintainability, it also introduces immense complexity to state management....OAuth Demystified: A Straightforward OAuth Tutorial
Incorporating OAuth (short for Open Authorization) into an application might seem somewhat intimidating and disheartening for many entry-level software engineers. After all, they need to spend hours—or even days—implementing a complicated authentication process with the correct configuration, only to realize they have merely completed a tiny feature. Despite all the hard work it entails, OAuth is a safe and efficient way for users to grant websites and applications access to their personal information....Getting started with Design Systems
Hello, I’m Bryan and a little over three months ago I moved to Japan from Scotland to join Colorkrew’s design team! When I was a child I played with Lego for hours. These simple bricks brought so much joy to this future designer. _ _ This messy pile has endless potential, with just a little imagination....Async/Await: a Game Changer for Haters of Promise Chaining
If you became a frontend engineer after 2015, chances are that you have used or at least heard about Promise. As I have covered in my previous blog, Promise can help us specify sequential relations between operations in asynchronous programming in a readable and maintainable manner. Promise object in JavaScript has methods, such as then and catch, that can help us organize the sequential execution of operations in a pattern called Promise Chaining....The Whys and Hows of Promise in JavaScript
If you have done any web development after 2015, chances are that you have heard of the concept of Promise. It wouldn’t be an overstatement to claim that Promise is ubiquitous in modern-day front-end codebases. However, many web developers—especially those who do not have much experience in front-end development—have been using Promise without thoroughly understanding its inner working....